Asp.net mvc 3 MVC 3.0会话状态超时和身份验证窗体超时

Asp.net mvc 3 MVC 3.0会话状态超时和身份验证窗体超时,asp.net-mvc-3,forms-authentication,session-timeout,Asp.net Mvc 3,Forms Authentication,Session Timeout,我有一个MVC3网站,如果会话超时,我必须将用户重定向到登录页面。经过一些研究,我发现我必须添加到web.config 设置用户会话超时。在这种情况下,如果用户空闲,它将在1分钟后清除用户会话数据 <authentication mode="Forms"> <forms loginUrl="~/Default/Login" timeout="1"/> </authentication> 在会话超时时将用户重定向到登录页面。事实上,

我有一个MVC3网站,如果会话超时,我必须将用户重定向到登录页面。经过一些研究,我发现我必须添加到web.config

设置用户会话超时。在这种情况下,如果用户空闲,它将在1分钟后清除用户会话数据

<authentication mode="Forms">
      <forms loginUrl="~/Default/Login" timeout="1"/>
    </authentication> 

在会话超时时将用户重定向到登录页面。事实上,这是可行的,但我有一些问题要弄清楚到底发生了什么:

  • 这两个标签之间的关系是什么?它们之间的依赖关系是什么
  • 是否必须为这两个标记设置timeout属性=1
  • 是否有更好的方法,我可以遵循,以完成我需要的

  • 提前感谢。

    元素为当前应用程序配置会话状态设置。 当新客户端开始与Web应用程序交互时,会发出会话ID,并在会话有效时与来自同一客户端的所有后续请求关联。此ID用于跨请求维护与客户端会话关联的服务器端状态。元素控制ASP.NET应用程序如何为每个客户端建立和维护此关联。 这种机制非常灵活,允许您在进程外托管会话状态信息并跟踪状态,而无需使用cookie等

    超时:指定会话在放弃之前可以空闲的分钟数。对于进程内和状态服务器模式,超时属性不能设置为大于525601分钟(1年)的值。 会话超时配置设置仅适用于ASP.NET页面。更改会话超时值不会影响ASP页的会话超时。同样,更改ASP页的会话超时不会影响ASP.NET页的会话超时。 默认值为20分钟

    表单身份验证:-这是一种基于cookie的身份验证,其中用户名和密码作为cookie文件存储在客户端计算机上,或者通过URL发送每个请求。基于表单的身份验证为用户提供一个基于HTML的网页,提示用户输入凭据


    您的所有问题都通过上述描述得到了回答

    会话状态和表单身份验证之间的区别是:

    会话状态:为应用程序的每个请求创建一个会话。它会有自己的超时

    表单身份验证:当用户使用您的应用程序进行身份验证时,将创建身份验证。它也会有自己的超时。这个超时值作为票据的一部分存储,票据被加密并存储在cookie或URL(无cookieless认证)中,我相信


    如果要结束基于会话的用户身份验证,则必须将其写入应用程序。我这样做的唯一原因是,我将经过身份验证的数据存储在会话中,以便交叉请求

    事实上,我不太明白你的意思“会话超时配置设置仅适用于ASP.NET页面。更改会话超时值不会影响ASP页的会话超时。同样,更改ASP页的会话超时不会影响ASP.NET页的会话超时。默认值是20分钟。”我仍然对身份验证表单的超时和sessionState的超时感到困惑。sessionState基本上适用于ASP.net应用程序中的所有会话,而身份验证仅适用于登录页面的用户名和密码身份验证。3您从未解释过您的“需要”。