实际上在我的 asp.net 应用程序中使用FormAuthentication Cookie,并将authenticationCookie过期设置为30天,但在IIS Forms Authentication设置中默认为30分钟。
我的问题是哪个超时先过期?,实际上我需要长时间的身份验证 Cookie 过期。
这是我用来设置身份验证 Cookie 超时的代码。
if (UserValidation(tbuser.Text, tbpass.Text))
{
Response.Cookies.Clear();
DateTime expiryDate = DateTime.Now.AddDays(30);
FormsAuthenticationTicket ticket = new FormsAuthenticationTicket(2, tbuser.Text, DateTime.Now, expiryDate, true, String.Empty);
string encryptedTicket = FormsAuthentication.Encrypt(ticket);
HttpCookie authenticationCookie = new HttpCookie(FormsAuthentication.FormsCookieName, encryptedTicket);
authenticationCookie.Expires = ticket.Expiration;
Response.Cookies.Add(authenticationCookie);
//FormsAuthentication.RedirectFromLoginPage(tbuser.Text, false);
Response.Redirect("Home.aspx");
}
Cookie 将根据您应用程序中的设置过期 - 即 30 天。
如果未在应用程序的 web.config 或代码中指定任何内容,则将继承默认值,但此处并非如此。