2008-11-26 5 views
1

У меня есть своя база данных linq для SQL с хорошим методом входа, который возвращает мне пользователя.ASP-MVC Проверка подлинности форм - cookie не сохраняется

Я следил за 101 примером в Интернете относительно того, как добавить файл cookie к клиенту.

  FormsAuthenticationTicket ticket = new FormsAuthenticationTicket(
       1, 
       _u.id.ToString(), 
       DateTime.Now, 
       DateTime.Now.AddDays(14), 
       true, 
       "hi", 
       FormsAuthentication.FormsCookiePath); 

     string hash = FormsAuthentication.Encrypt(ticket); 

     HttpCookie cookie = new HttpCookie(FormsAuthentication.FormsCookieName, hash); 

     if (ticket.IsPersistent) cookie.Expires = ticket.Expiration; 

     //Response.Cookies.Add(cookie); 

     //FormsAuthentication.RedirectFromLoginPage(_u.name, _remember); 
     FormsAuthentication.SetAuthCookie(_u.name, _remember); 

И, конечно же, он добавляется. Но когда я проверяю его, истекает срок окончания сеанса, а не две недели, как указано. Поэтому, когда пользователь пытается вернуться на сайт после закрытия браузера, он должен войти в систему.

Любые идеи?

+0

_remember is true? Это должно быть для того, чтобы файл cookie был постоянным. – tvanfosson 2008-11-26 15:34:13

ответ

3

Эта особая ошибка возникла из-за того, что у меня был установлен браузер для удаления файлов cookie, когда он был закрыт.

-1

У меня такая же проблема, и я решаю на логин Page_Load
Первый Validate User.Identity правильно
, если оно истинно есть действительный пользователь !!!.
if false удалить старый cookie (См. Ссылку http://forums.asp.net/t/1227365.aspx/1)
Эта последняя часть предназначена для предотвращения сохранения нового файла cookie.