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

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (17)

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

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

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

<sessionState timeout="1" mode="InProc" />
提问于
用户回答回答于

如果要将超时设置为20分钟,请使用以下内容:

<configuration>
  <system.web>
     <sessionState timeout="20"></sessionState>
  </system.web>
</configuration>
用户回答回答于

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

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

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

为了测试这个,创建一个简单的aspx页面,并将这些代码写入Page_Load事件中,

Response.Write(Session.SessionID);

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

现在,如果我的猜测是正确的,那么您希望在会话超时后立即让用户注销。为此,你可以创建一个登录页面来验证用户凭据,并创建一个像这样的会话变量 -

Session["UserId"] = 1;

现在,你将不得不在每个页面上对这个变量进行检查 -

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

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

扫码关注云+社区