- thinkphp变量的定义规则
- HTTP 错误 403.9 - 禁止访问:连接的用户过多 XP系统下IIS错误解决办法
- 淘宝中的ROI是指投资回报率,也叫投入产出比,即总成交金额/花费
- AutoMapper的使用场景
- 关键词放在什么位置最好
- 使用Javascript防止重复提交表单
- 网站内页设计需要提供什么资料
- 选择关键词需要考虑的几个因素
- Math.Round()方法的四舍五入
- autofac介绍
邮箱:
手机:15383239821
asp.net中Session过期设置方法
在Asp.net应用中,很多人会遇到Session过期设置有冲突。其中,可以有四处设置Session的过期时间:
一、全局网站(即服务器)级
IIS-网站-属性-Asp.net-编辑配置-状态管理-会话超时(分钟)-设置为120,即为2小时,即120分钟后如果当前用户没有操作,那么Session就会自动过期。
二、网站级
IIS-网站-具体网站(如DemoSite)-属性-Asp.net,此时有两个选项,一个是“编辑全局配置”,一个是“编辑配置”。
如果“编辑全局配置”,就和上个配置一样。
如果“编辑配置”,则只对当前网站生效。因为一个服务器可能有很多独立网站。
1、继续选择“状态管理”-会话超时(分钟)-设置为360,即360分钟。效果同上,只不过只对当前网站生效。
2、身份认证-Forms-Cooke超时,选择"12:00:00",即12个小时。可选项共有以下八项:
00:15:00
00:30:00
01:00:00
02:00:00
04:00:00
08:00:00
12:00:00
1:00:00:00
即最长24小时,最小15分钟。这是默认的配置。在应用中可以自由定制。
三、应用程序级
同网站管理,只不过作用域仅限当前应用程序。
四、页面级
在某页面中,设置Session.Timeout = 30;即可临时修改某页面的会话过期时间。
查看某个Session的过期时间,可以用
view plaincopy to clipboardprint?
TimeSpan SessTimeOut = new TimeSpan(0, 0, System.Web.HttpContext.Current.Session.Timeout, 0, 0);
TimeSpan SessTimeOut = new TimeSpan(0, 0, System.Web.HttpContext.Current.Session.Timeout, 0, 0);
其中,二和三的设置,体现在Web.config中即:
view plaincopy to clipboardprint?
<?xml version="1.0"?>
<configuration>
<system.web>
<authentication mode="Forms" >
<forms name="AuthLogin" loginUrl="/Login.aspx" protection="All" timeout="360" slidingExpiration="true"/>
</authentication>
<sessionState mode="InProc" cookieless="false" timeout="20" />
</system.web>
<location path="Login.aspx">
<system.web>
<authorization>
<allow users="×" />
</authorization>
</system.web>
</location>
</configuration>
<?xml version="1.0"?>
<configuration>
<system.web>
<authentication mode="Forms" >
<forms name="AuthLogin" loginUrl="/Login.aspx" protection="All" timeout="360" slidingExpiration="true"/>
</authentication>
<sessionState mode="InProc" cookieless="false" timeout="20" />
</system.web>
<location path="Login.aspx">
<system.web>
<authorization>
<allow users="×" />
</authorization>
</system.web>
</location>
</configuration>
以上四处设置的优先级为页面级>应用程序级>网站级>服务器级。换句话说,如果页面设置为20分钟,网站设置为120分钟,那么,显然以20分钟为生效的过期时间。
另外一个值得注意 的地方。
在设置二处,设置会话超时(SessionState)120分钟,而同时用forms认证,设置为“00:15:00”,即15分钟,并且slidingExpirationo为false,则真正生效的Session过期时间是多少呢?
有效的结果是SessionState的设置,即120分钟。
如果有设置Session过期时间没有生效的,请检查以上几处配置。
-
2023-05-04PHP中private、public、protected的区别详解
-
2018-11-08网站建设
-
2010-08-10Session是什么呢
-
2010-12-21SQL选择不重复记录
-
2012-07-02网站301和302重定向问题
