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

Geo*_*ge2 167 .net c# asp.net session visual-studio-2008

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

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

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

<sessionState timeout="1" mode="InProc" />
Run Code Online (Sandbox Code Playgroud)

Wol*_*yrd 310

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

    <configuration>
      <system.web>
         <sessionState timeout="20"></sessionState>
      </system.web>
    </configuration>
Run Code Online (Sandbox Code Playgroud)

应该看对你

  • 配置以分钟为单位表示超时,即20分钟 (18认同)
  • 20分钟或几小时?(超时= "20") (13认同)
  • 我做了同样的事情,但是我没有为我工作。 (2认同)

Kir*_*tan 48

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

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

通过为此属性指定值1,您可以将会话设置为在空闲后1分钟内放弃.

要测试它,创建一个简单的aspx页面,并在Page_Load事件中编写此代码,

Response.Write(Session.SessionID);
Run Code Online (Sandbox Code Playgroud)

打开浏览器并转到此页面.会话ID将被打印.等一分钟过去,然后点击刷新.会话ID将更改.

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

Session["UserId"] = 1;
Run Code Online (Sandbox Code Playgroud)

现在,您必须对此变量的每个页面执行检查,如下所示 -

if(Session["UserId"] == null)
    Response.Redirect("login.aspx");
Run Code Online (Sandbox Code Playgroud)

这是一个如何工作的简单示例.

但是,为了使您的生产质量安全的应用程序,使用ASP.NET提供的角色和成员资格类.它们提供基于表单的身份验证,这比您尝试使用的基于会话的正常身份验证更加可靠.