Alv*_*nus 12 c# asp.net cookies asp.net-mvc session
IIS服务器重启后,我的登录会话(使用简单会员资格)和cookie(验证令牌)似乎无效.这对我来说是一个问题,如果一个用户在事务中间然后服务器重新启动,用户必须重新填写表单并再次执行它,也可能是一些代码问题,当事务在中间中断时处理.
服务器重启后如何使它们仍然有效?
这是我的web.config:
<membership />
...
<sessionState mode="InProc" cookieless="false" timeout="2880" />
...
<authentication mode="Forms">
<forms loginUrl="~/Account/Login" timeout="2880" />
</authentication>
...
<staticContent>
<clientCache cacheControlMode="UseMaxAge" cacheControlMaxAge="30.00:00:00" />
<remove fileExtension=".woff" />
<remove fileExtension=".woff2" />
<mimeMap fileExtension=".woff" mimeType="application/font-woff" />
<mimeMap fileExtension=".woff2" mimeType="application/font-woff2" />
</staticContent>
Run Code Online (Sandbox Code Playgroud)
我试图使用SQLServer来存储会话状态.然后出现了新的问题,我不能使用,ViewBag
因为它不是Serializable
.
还有另一种方法可以达到这个目的吗?
没有办法实现这个AFAIK.您始终可以使用Database
或File
保留会话和cookie值.
想法可能是您要序列化要保留的对象Session
或Cookie
.有很多工具可以为你做序列化,我使用newtonsoft.然后将其与会话密钥一起存储在DB中.
为了获得它,你可以简单地基于会话密钥发出一个查询,获取字符串并反序列化它,你就完成了:)
默认情况下,会话数据存储在内存中。因此,您在 IIS 重新启动时丢失了它。您可以考虑使用其他 out of proc sessionstate provider 来存储数据,例如数据库、sessionstate 服务。
归档时间: |
|
查看次数: |
3460 次 |
最近记录: |