1

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

4

4 回答 4

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

于 2012-07-22T16:19:38.313 回答
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>

您需要同时添加两者以使其有效工作。

于 2012-07-22T16:19:49.817 回答
2

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

于 2012-07-22T16:20:31.823 回答
2

您可以通过添加以下内容来更改 web.config 文件以使会话超时:

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

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

Session.Timeout = 10; 
于 2012-07-22T16:25:59.717 回答