我需要帮助弄清楚为什么我的身份验证票证在我的托管网站上大约一个小时后就过期了。但是,如果我在本地运行该站点,身份验证票证将在正确的时间内保持活动状态。
这是我的本地主机 web.config:
<authentication mode="Forms">
<forms loginUrl="~/Account/LogOn" timeout="20160" slidingExpiration="true" path="/" />
</authentication>
这是我托管的 web.config:
<authentication mode="Forms">
<forms loginUrl="~/Account/LogOn" timeout="20160" slidingExpiration="true" domain=".mywebsite.com" path="/" />
</authentication>
我知道正在创建身份验证票证,因为:
- 我可以在浏览器cookies中看到它
- 即使关闭浏览器并重新打开后我仍保持登录状态
- 即使网站回收后我仍保持登录状态(更改并保存 web.config 以回收它)
当我在浏览器中检查 cookie 过期日期时,已经是 2 周后了。然而,大约一个小时后,我的身份验证总是过期。
我该如何找出托管网站的身份验证如此早过期的原因?
我不知道如何解决这个问题,因为我的托管网站是唯一有问题的网站。
更新 1:等待 1 小时后,我检查浏览器,发现 cookie 仍然存在。事实上,它的有效期被设定为两周后。但是,如果我重新加载页面或尝试转到任何需要身份验证的页面,我将被带到登录页面。
我在 system.net 中添加了一个 machinekey 条目。像这样的东西:
<machineKey validationKey="aaa"
decryptionKey="bbb" validation="SHA1" />
现在它使用户保持登录状态。但是,现在我似乎遇到了性能问题。页面加载时间过去大约需要 500 毫秒,现在则需要大约两倍的时间。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)