2010-10-25 3 views
1


У меня есть веб-сайт ASP: NET MVC 2, который находится на SSL. Я хочу создать печенье, как это:Как создать Cookie, используя SSL-страницы?

FormsAuthentication.SetAuthCookie(validatedUser.UserName, false); 
FormsAuthenticationTicket authTicket = new FormsAuthenticationTicket(1, validatedUser.SecureToken, DateTime.Now, DateTime.Now.AddMinutes(10), false, String.Empty); 

HttpCookie cookie = new HttpCookie(FormsAuthentication.FormsCookieName, FormsAuthentication.Encrypt(authTicket)); 
Response.Cookies.Add(cookie);  

Но я получаю исключение, говоря: ". Приложение настроен на выдачу защищенных куки Эти файлы требуют браузер выдавать запрос через SSL (HTTPS протокол) .. Однако, текущий запрос не через SSL "

В web.config у меня есть:

<authentication mode="Forms"> 
    <forms loginUrl="~/Account/LoginError" timeout="2880" requireSSL="true" protection="All"/> 
</authentication>  

Как я могу это исправить?

+0

Кто-то читал это? http://codebutler.com/firesheep –

ответ

1

requireSSL="false" или используйте http://, чтобы запросить ваш сайт. Обратите внимание, что обе идеи являются плохими, если вы заботитесь о безопасности. Если вы хотите, чтобы безопасный сайт покинул requireSSL="true" и воспользовался https://, чтобы запросить ваш сайт.

Также метод SetAuthCookie уже пишет печенье в ответ, так что вам не нужен отдых:

FormsAuthentication.SetAuthCookie(validatedUser.UserName, false); 

достаточно. Вам не нужно беспокоиться о FormsAuthenticationTicket и добавлении файла cookie в ответ.

+1

У меня есть requireSSL = "true" и используйте https: // потому что мне нужна безопасность, но я всегда получаю это исключение. – dani

+1

Ну, исключение, которое вы получаете, доказывает, что вы не используете 'https: //'. Или, может быть, есть межсетевой экран или прокси-сервер между клиентом и веб-сервером, который переписывает запрос? Установлен ли сертификат SSL на веб-сервере? –

+0

Я нашел проблему. Дело в том, что при запуске формы Visual Studio Visual Studio это не сработает. Если я запустил сайт через IIS, он работает. – dani

Смежные вопросы