您的位置:首页 > 其它

.net iis 7 基于session的会话长时间保持不退出登录

2017-06-06 16:41 417 查看
假如我们用.net c# 基于session(非cookie)

HttpContext.Current.Session[AccountKeyPrefix] = value;

做一个网站,特别是一个后台,如果长时间不登录,时不时要登录是多么的烦。

在网上找了很多资料,讲得最典型的无非两个方面:

1、设置web.xml

<configuration>
<system.web>
<sessionState mode="InProc" timeout="80000"/>
</system.web>
<configuration>大部分资料都是这么说的,比如:
sessionState mode = "InProc" 这种方式不安全,相当于把session交给IIS的进程管理,IIS的不稳定性将导致Session频繁丢失。

sessionState mode="StateServer"是建立独立的Session的服务进程管理方式模式,不受IIS的进程本身的不稳定影响,不容易导致session丢失,可以实现多个asp.net的站点的session 共享。

<sessionState mode="Off|InProc|StateServer|SQLServer"
cookieless="true|false"
timeout="number of minutes"
stateConnectionString="tcpip=server:port"
sqlConnectionString="sql connection string"
stateNetworkTimeout="number of seconds"
/>意思是就是把站点托管到IIS,或者保存到状态服务器或者数据库。
但是!这个 timeout="80000"的单位是秒!这是重点,很少人说到的。
另外,当mode="InProc"时,还要配合IIS设置使用,不然根本就没有效果!



还有一个地方



这个里面的超时,也要设置
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: