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