我在下面设置了相同的身份验证Cookie:
FormsAuthentication.SetAuthCookie(member.UserName,member.RememberMe);
并在web.config中:
<authentication mode="Forms"> <forms loginUrl="~/Login" timeout="2" slidingExpiration="true"/> </authentication>
当记住是真或假时,结果没有不同,用户在2分钟后退出。我的问题在哪里? 感谢
答案 0 :(得分:0)
FormsAuthentication.SetAuthCookie(member.UserName, member.RememberMe);
如果member.RememberMe为 false ,则Cookie将在超时或用户关闭浏览器时过期。
如果member.RememberMe为 true ,那么cookie只会在超时时到期(无论其持久性与否,都无效)。
但是如果你想增加持久性cookie的超时,你可以这样做: -
var timeOut = member.RememberMe ? DateTime.Now.AddMinutes(20) : DateTime.Now.AddMinutes(2);
var fat = new FormsAuthenticationTicket(1, member.UserName, DateTime.Now,timeOut, member.RememberMe, member.UserName);
string encTicket = FormsAuthentication.Encrypt(fat);
Response.Cookies.Add(new HttpCookie(FormsAuthentication.FormsCookieName, encTicket) { Expires = fat.Expiration });