如何在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" />