首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何在web.config中设置会话超时

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

Stack Overflow用户
提问于 2009-07-30 10:49:11
回答 5查看 592.1K关注 0票数 198

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

我使用的是VSTS2008+ .Net 3.5 + C#。这是我自己写的,将超时设置为1分钟,对吗?

我在web.config中的system.web部分下写的

代码语言:javascript
复制
<sessionState timeout="1" mode="InProc" />
EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2009-07-30 10:56:41

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

代码语言:javascript
复制
    <configuration>
      <system.web>
         <sessionState timeout="20"></sessionState>
      </system.web>
    </configuration>
票数 348
EN

Stack Overflow用户

发布于 2009-07-30 10:57:34

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

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

通过为该属性赋值1,您已经将会话设置为在空闲后1分钟内放弃。

要测试这一点,请创建一个简单的aspx页面,并在Page_Load事件中编写以下代码,

代码语言:javascript
复制
Response.Write(Session.SessionID);

打开浏览器并转到此页面。将打印会话id。等待一分钟,然后点击刷新。会话id将更改。

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

代码语言:javascript
复制
Session["UserId"] = 1;

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

代码语言:javascript
复制
if(Session["UserId"] == null)
    Response.Redirect("login.aspx");

这是一个简单的例子,说明了它是如何工作的。

但是,为了让你的产品质量安全,可以使用ASP.NET提供的Roles & Membership类。它们提供了基于表单的身份验证,比你正在尝试使用的普通的基于会话的身份验证可靠得多。

票数 53
EN

Stack Overflow用户

发布于 2019-12-12 23:08:20

如果您使用的是MVC,请将其放入web应用程序根目录下的web.config文件中,而不是视图目录中的web.config中。它也需要在system.web节点中,而不是像George2在他的问题中所说的那样:“我在web.config中的system.web部分下写”

超时参数值表示分钟数。

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

代码语言:javascript
复制
<configuration>
   <system.web>
      <sessionState timeout="20"></sessionState>
   </system.web>
</configuration>

然后,您可以通过添加以下方法在Global.asax文件中捕获新会话的开始:

代码语言:javascript
复制
void Session_Start(object sender, EventArgs e)
{
    if (Session.IsNewSession)
    {
        //do things that need to happen
        //when a new session starts.
    }
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1205828

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档