我在一个ASP.NET表单身份验证下有很多站点。他们有混合框架(有些有2.0,有些4.0,但一切都很好)一切正常,但有时,在随机时间(例如两分钟)后,客户端上的会话结束,他必须输入他的密码agian 。为什么?我错过了什么?
以下是我的web.config的一部分:
<authentication mode="Forms" ><forms loginUrl="../web/start_page/start_page.aspx"
name=".ASPXFORMSAUTH"
protection="All"
path="/"
timeout="60" /></authentication>
<machineKey
validationKey="blablabla"
validation="SHA1" />
<sessionState mode="InProc" stateNetworkTimeout="3600" />
事件查看器显示:
Event code: 4005
Event message: Forms authentication failed for the request. Reason: The ticket supplied has expired.
Event time: 21.09.2010 8:23:26
Event time (UTC): 21.09.2010 4:23:26
Event ID: e3a00bef332a4dec9cd1aa078a3d5aa4
Event sequence: 277
Event occurrence: 1
Event detail code: 50202
答案 0 :(得分:1)
因为会话超时事件发生所以你需要增加这样的会话时间
<configuration>
<sessionstate
mode="inproc"
cookieless="false"
timeout="20"
sqlconnectionstring="data source=127.0.0.1;user id=<user id>;password=<password>"
server="127.0.0.1"
port="42424"
/>
</configuration>
超时。此选项控制会话被视为有效的时间长度。会话超时是滑动值;在每个请求上,超时时间段设置为当前时间加上超时值