Я создал новое веб-приложение MVC 4, используя новую модель SimpleMembership. Создание сайта «из коробки» VS2012 создает на странице регистрации контролер учетной записи и флажок «Запомнить меня». Но когда я устанавливаю этот флажок, это не помнит меня.Как проверить файл cookie с помощью MVC 4 и функции «Запомнить меня»?
Я новичок в некоторых частях MVC, но кажется, что в моем AccountController в области Login нет ничего, что бы проверить сохраненный файл cookie. Нужно ли мне писать код для этого? Я нашел пример этого на другом сайте, но прежде чем реализовать его, я хочу убедиться, что я делаю это правильно.
Мне просто кажется странным, что Microsoft автоматизирует функцию Remember Me как часть нового веб-приложения MVC 4, но не включает эту часть кода.
Для сохранения куки, я использую следующее, что я нашел на этом сайте:
FormsAuthentication.SetAuthCookie(model.UserName, true);
int timeout = model.RememberMe ? 525600 : 30; // Timeout in minutes, 525600 = 365 days.
var ticket = new FormsAuthenticationTicket(model.UserName, model.RememberMe, timeout);
string encrypted = FormsAuthentication.Encrypt(ticket);
var cookie = new HttpCookie(FormsAuthentication.FormsCookieName, encrypted);
cookie.Expires = System.DateTime.Now.AddMinutes(52000);// timeout
cookie.HttpOnly = true; // cookie not available in javascript.
Response.Cookies.Add(cookie);`
WebSecurity (в MVC4) уже имеет функцию «Запомнить меня». См. WebSecurity.Login – LostInComputer
Как сказал LostInComputer, метод WebSecurity.Login [уже разрешает сохранение cookie] (http://msdn.microsoft.com/en-us/library/webmatrix.webdata.websecurity.login%28v=vs.111 % 29.aspx). Третий параметр называется 'persistCookie' и делает именно это. По умолчанию AccountController передает этому параметру значение свойства RememberMe в LogInModel. –