在asp.net mvc中更改会话变量超时的默认值

Lam*_*fif 13 .net c# asp.net asp.net-mvc razor

我有一个带有razor视图引擎的Asp.net Mvc应用程序,其中我使用了一个变量Session['user']:当用户登录应用程序时Session['user'] = login,在注销时此变量取值Null.

问题是有一个短暂的超时和会话变量到期:如果我在Session['user'] =null自动登录应用程序后一分钟内什么都不做.

那么如何才能将会话变量的超时设置为无限制,直到它被程序更改为止?有什么建议吗?

Aru*_*n C 29

那么如何才能将会话变量的超时设置为无限制,直到它被程序更改为止?有什么建议吗?

您无法将timeout值设置为无限制.

您可以使用web.config中timeoutsessionStateelement 属性以分钟为单位增加超时值.


会话状态设置

默认情况下,ASP.NET使用cookie来标识哪些请求属于特定会话.如果cookie不可用,则可以通过向URL添加会话标识符来跟踪会话.要禁用cookie,请设置sessionState cookieless="true". (120 =分钟)

<sessionState mode="StateServer" cookieless="false" timeout="120"/>
Run Code Online (Sandbox Code Playgroud)

查看此会话 - 超时


ssi*_*777 14

您无法将其分配给无限制.您可以使用Session state元素的time out属性以分钟为单位增加值web.config

<sessionState timeout="30">
</sessionState>
Run Code Online (Sandbox Code Playgroud)

默认情况下,会话超时值为20分钟.在您的情况下,如果您使用表单身份验证,也请检查身份验证超时值

<authentication mode="Forms">
   <forms loginUrl="logon.aspx" 
   protection="All" path="/" timeout="30" />
</authentication>  
Run Code Online (Sandbox Code Playgroud)


Anu*_*rni 8

这是会话的超时,而不是变量.在几分钟内将其设置为配置

<sessionState timeout="30" />
Run Code Online (Sandbox Code Playgroud)


小智 7

无法将会话时间设置为:无限制.而是将会话时间设置为高值示例:

<configuration>
  <system.web>
    <sessionState mode="InProc" timeout="350" />
  </system.web>
</configuration>
Run Code Online (Sandbox Code Playgroud)