坚持.aspxauth会员cookie

时间:2015-06-27 21:13:08

标签: asp.net cookies forms-authentication .aspxauth

我最近将网站从一个主机移动到另一个主机。

在移动之前,表单身份验证正常工作,用户仍然在会话中保持登录状态。

移动用户在看似随机的时间后退出。

我检查了网络流量,并且.aspxauth cookie正在发送到服务器。

我在本地调试了问题,然后再次发送cookie,但它没有出现在Request.Cookies中。谷歌告诉我,这是因为如果ASP.NET无法解密.aspxauth cookie,那么它会偷偷地将它从Request.Cookies集合中删除。

由于

1 个答案:

答案 0 :(得分:0)

ASP.NET无法解密自己加密的cookie似乎有点荒谬,但事实确实如此。

要加密cookie,ASP.NET使用web.config或machine.config中的MachineKey设置。不幸的是,这是" AutoGenerate,IsolateApps"的默认设置,在这种情况下,ASP.NET每次应用程序池重新生成时都会生成一个新值,因此无法在现有cookie中读取。

解决这个问题的方法是在web.config或machine.config中指定一个键,有一些在线工具可以生成一个(例如http://www.developerfusion.com/tools/generatemachinekey/)和一些离线工具用于更偏执({} {3}})

完成后应该看起来像这样:

<machineKey
validationKey="12365A372...etc...34897"
decryptionKey="A76568...etc...1239847FD"
validation="SHA1" decryption="AES">