Как создать Cookie с использованием страниц SSL? - PullRequest
1 голос
/ 25 октября 2010


У меня есть веб-сайт ASP: NET MVC 2, работающий по протоколу SSL.Я хочу создать файл cookie следующим образом:

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);    

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

В файле web.config у меня есть:

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

Как это исправить?

1 Ответ

1 голос
/ 25 октября 2010

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

Также метод SetAuthCookie уже записывает cookie в ответ, поэтому вам не нужноотдых:

FormsAuthentication.SetAuthCookie(validatedUser.UserName, false);

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...