用户登录不被记住

时间:2011-04-06 13:19:47

标签: c# asp.net-mvc login asp.net-membership

嗨,出于某种原因,用户几分钟后就会自动退出。

我无法确定多长时间 - 也许十分钟。基本上如果我登录,关闭浏览器并重新打开我的网站然后我仍然登录。但是如果我关闭并返回它十分钟后它需要我重新登录。 这是来自我的网络配置:

<authentication mode="Forms">
      <forms loginUrl="~/Account/LogOn" timeout="1440" slidingExpiration="true" />
    </authentication>

当用户登录时执行:

  private void CreateAuthTicket(string userName, bool rememberMe, string userData)
     {
        FormsAuthenticationTicket authTicket = new FormsAuthenticationTicket(
1,userName,DateTime.Now,DateTime.Now.AddDays(1),rememberMe,userData);

         string encTicket = FormsAuthentication.Encrypt(authTicket);
         HttpCookie faCookie = new HttpCookie(FormsAuthentication.FormsCookieName, encTicket);
         Response.Cookies.Add(faCookie);
      }

5 个答案:

答案 0 :(得分:1)

if(rememberMe) {
  faCookie.Expires(DateTime.Now.AddDays(5)); //or something else here
}

答案 1 :(得分:0)

IIS中的会话cookie存在超时设置。可能会导致您的会话过期。

默认情况下,&#34;记住我&#34; MVC中的功能应该创建一个持久性cookie。

答案 2 :(得分:0)

可以在浏览器中禁用Cookie,也可以检查

答案 3 :(得分:0)

如果更改Cookie期限不适合您。您可能需要为您的站点生成计算机密钥。这解决了过去记住我不工作的问题。

Machine key Generator

答案 4 :(得分:0)

这是本地还是托管环境?共享主机提供商有时会将其生命周期设置得很低,以便定期释放资源如果仅在部署站点时发生这种情况,则最好与提供商核实其设置。我曾经有一个托管人,他们的生命周期为5分钟(!!),这导致了类似的问题。