有人能解释一下ASP.NET表单身份验证是如何工作的吗?因为我似乎不理解,而且我一直被注销。
目前,我有用户名、密码和一个“保持登录状态”复选框。 我将使用这些值创建票证和cookie,如下所示:
// Create ticket
FormsAuthenticationTicket ticket = new FormsAuthenticationTicket(1,email,DateTime.UtcNow,DateTime.UtcNow.AddMinutes(30),remember,String.Empty);
// Encrypt ticket
string cookie_contents = FormsAuthentication.Encrypt(ticket);
// Create cookie
HttpCookie cookie = new HttpCookie(FormsAuthentication.FormsCookieName,cookie_contents);
if (remember) {
cookie.Expires = DateTime.UtcNow.AddDays(90);
}
cookie.Path = FormsAuthentication.FormsCookiePath;
cookie.Secure = true;
// Add cookie to response
Response.Cookies.Add(cookie);
我希望通过这段代码,能够登录我的网站并保持登陆状态,假设我勾选了“保持登录状态”,那么我至少可以保持90天的登录状态?
然而我现在遇到的问题是,我在初始登录后只能保持30分钟就会被强制登出(这可能是ticket保持时间?)。
那么cookie过期和ticket过期有什么区别,如何保持登录状态呢?我需要将cookie和ticket的过期时间都设置为90天吗?