自定义时间后持久性cookie超时并且不是持久性

时间:2014-02-24 09:07:00

标签: c# asp.net-mvc-4 cookies login

我在下面设置了相同的身份验证Cookie:

  

FormsAuthentication.SetAuthCookie(member.UserName,member.RememberMe);

并在web.config中:

<authentication mode="Forms">
  <forms loginUrl="~/Login"  timeout="2" slidingExpiration="true"/>
</authentication>

当记住是真或假时,结果没有不同,用户在2分钟后退出。我的问题在哪里? 感谢

1 个答案:

答案 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 });