如何在web.config中设置会话超时

我已经非常努力地尝试,但找不到解决scheme如何为ASP.Net Web应用程序的进程内会话设置会话超时值。

我正在使用VSTS 2008 + .Net 3.5 + C#。 这是我自己写的超时时间为1分钟,这是正确的吗?

我在web.config system.web部分下写道

 <sessionState timeout="1" mode="InProc" /> 

如果您想将超时设置为20分钟,请使用如下所示的内容:

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

应该看你的权利

您在timeout属性中设置的值是设置会话超时值的正确方法之一。

timeout属性指定会话在放弃之前可以闲置的分钟数。 此属性的默认值是20。

通过为此属性分配值1,您将会话设置为闲置1分钟后放弃。

为了testing这个,创build一个简单的aspx页面,并将这个代码写入Page_Load事件中,

 Response.Write(Session.SessionID); 

打开浏览器并转到此页面。 会话ID将被打印。 等待一分钟,然后刷新。 会话ID将会改变。

现在,如果我的猜测是正确的,您希望在会话超时后立即让用户注销。 为此,您可以创build一个login页面来validation用户凭据,并创build一个像这样的会话variables –

 Session["UserId"] = 1; 

现在,你将不得不在每个页面上对这个variables进行检查 –

 if(Session["UserId"] == null) Response.Redirect("login.aspx"); 

这是如何工作的一个简单的例子。

但是,为了使您的产品质量安全的应用程序,使用ASP.NET提供的angular色和成员资格类。 他们提供基于表单的身份validation,这是更可靠的正常基于会话的身份validation您正在尝试使用。

web.config使用这个:

 <sessionState mode="InProc" stateConnectionString="tcpip=127.0.0.1:42424" sqlConnectionString="data source=127.0.0.1;Trusted_Connection=yes" cookieless="false" timeout="20" />