具有母版页的asp.net上的会话超时

时间:2012-07-22 16:14:28

标签: c# asp.net master-pages session-timeout

我有一个带有母版页的asp.net应用程序。我需要在10分钟后有一个会话超时,为此我有一个javascript代码块。有没有其他更有效的方法来进行会话超时,而不是在每个页面上都有一个javascript代码块? (我没有使用会员提供者)。

4 个答案:

答案 0 :(得分:3)

您可以在web.config

中更改会话的超时
<sessionState 
   mode="InProc" 
   stateConnectionString="tcpip=127.0.0.1:42424" 
   stateNetworkTimeout="10" 
   sqlConnectionString="data source=127.0.0.1;Integrated Security=SSPI" 
   sqlCommandTimeout="30" 
   customProvider="" 
   cookieless="UseCookies" 
   cookieName="ASP.NET_SessionId" 
   timeout="10" 
   allowCustomSqlDatabase="false" 
   regenerateExpiredSessionId="true" 
   partitionResolverType="" 
   useHostingIdentity="true">
   <providers>
      <clear />
   </providers>
</sessionState>

参考:http://msdn.microsoft.com/en-us/library/h6bb9cz9(vs.80).aspx

答案 1 :(得分:2)

使用javascript是一个坏主意,你可以在服务器上轻松地做你想做的事。

将此添加到您的Global.asax

protected void Session_Start(object sender, EventArgs e)
{
   Session.Timeout = 10;
}

这是你的web.config

    <configuration>
    <system.web>
       <sessionState timeout="10"></sessionState>
    </system.web>
    </configuration>

您需要添加两者才能使其有效运作。

答案 2 :(得分:2)

您可以在服务器端执行此操作。在客户端没有时间安排你的会话。在这种情况下,您可以在母版页或webconfig或global.asax上集中进行。

答案 3 :(得分:2)

您可以通过添加以下内容来更新web.config文件:

<system.web>
    <authentication mode="Forms">
          <forms timeout="10"/>
    </authentication>
    <sessionState timeout="10"  />
</system.web>

您可以使用以下代码从c#执行此操作:

Session.Timeout = 10;