我将c#中的身份验证cookie设置为持久性,并且结束日期为一年,但设置后不会过长。代码如下......
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 :(得分:3)
我想通了......当我检查用户是否经过身份验证时,我使用了以下代码......
if (HttpContext.Current.User != null && HttpContext.Current.User.Identity.IsAuthenticated)
{
return true;
}
当我删除第一个检查(即HttpContext.Current.User!= null)时,它开始工作。虽然我真的不明白当HttpContext.Current.User为null时HttpContext.Current.User.Identity.IsAuthenticated如何才能成立。
无论哪种方式,它现在都有效,所以没问题。