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

我已经很努力了,但找不到一个解决方案如何设置ASP进程内会话的会话超时值。Net web应用程序。

我使用VSTS 2008 + . net 3.5 + c#。这是我自己写的设置timeout为1分钟,对吗?

我是在系统下写的。web.config . web部分

<sessionState timeout="1" mode="InProc" />
619870 次浏览

如果你想将超时时间设置为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");

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

但是,为了使你的产品质量安全的应用程序,使用ASP.NET提供的的角色,会员类。它们提供基于表单的身份验证,比您正在尝试使用的基于会话的身份验证可靠得多。

web.config中使用:

<sessionState


timeout="20"
/>

如果它不能从web.config工作,你需要从IIS设置它。

如果你使用MVC,你把它放在网络上。配置文件在web应用程序的根目录,而不是web。在Views目录下配置。它也需要在系统中。而不是像乔治2在他的问题中说的那样:“我在系统下写的。Web部分。”

timeout参数的值代表分钟。

在sessionState元素中还可以设置其他属性。你可以在这里找到相关信息:learn.microsoft.com sessionState

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

然后,您可以在全局中捕获新会话的开始。Asax文件,添加如下方法:

void Session_Start(object sender, EventArgs e)
{
if (Session.IsNewSession)
{
//do things that need to happen
//when a new session starts.
}
}