2009-12-18 3 views
3

Я настраиваю файл cookie для проверки подлинности в C# как постоянный и с датой окончания года, но истекает слишком долго после его установки. Код ниже ...C# .net - проверка подлинности, истекающая досрочно

DateTime endDate = new DateTime(); 
endDate = DateTime.Now.AddYears(1); 

FormsAuthenticationTicket ticket = new FormsAuthenticationTicket(1, 
                  username, 
                  DateTime.Now, 
                  endDate, 
                  true, 
                  userId.ToString(), 
                  FormsAuthentication.FormsCookiePath); 


string encryptedTicket = FormsAuthentication.Encrypt(ticket); 

HttpCookie authCookie = new HttpCookie(
         FormsAuthentication.FormsCookieName, 
         encryptedTicket); 

authCookie.Expires = endDate; 

Response.Cookies.Add(authCookie); 

Любые идеи?

+0

Когда вы говорите «не слишком долго», как долго вы это понимаете? Используете ли вы такой инструмент, как HttpWatch, чтобы выяснить, не отправляется ли файл cookie, или что формальная аутентификация больше не распознает его? Аутентификация форм –

+0

не распознает человека, зарегистрированного после примерно 30 минут. Я не пробовал использовать HttpWatch, но я использовал cookie просмотра в Firefox, чтобы убедиться, что файлы cookie существуют и установлены на правильную дату истечения срока действия. Я видел два файла cookie, один из которых был .ASPXAUTH с правильной датой истечения срока действия и еще один ASP.NET_SessionId с «Session» в качестве даты истечения срока действия. – Tija

ответ

3

я понял это ... когда я проверял, был ли аутентификация пользователя, я использовал следующий код ...

if (HttpContext.Current.User != null && HttpContext.Current.User.Identity.IsAuthenticated) 
{ 
    return true; 
} 

, когда я снял первый чек (т.е. HttpContext.Current.User ! = null) он начал работать. Хотя я действительно не понимаю, как HttpContext.Current.User.Identity.IsAuthenticated может быть правдой, если HttpContext.Current.User null.

В любом случае, сейчас это работает, поэтому проблем нет.

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