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)
应该看对你
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提供的角色和成员资格类.它们提供基于表单的身份验证,这比您尝试使用的基于会话的正常身份验证更加可靠.