Asp.net形成身份验证cookie,不遵守IIS7的超时

Jim*_*rts 23 asp.net authentication cookies iis-7 forms-authentication

身份验证cookie似乎在短时间(一天左右)后超时.我正在使用表单身份验证,并在web.config中使用slidingExpiration ="false"的timeout ="10080".使用该设置,cookie应在用户成功通过身份验证后约7天到期.

这与IIS6一样广告,但当我将网站移动到IIS7时,cookie过期的速度要快得多.我已经在IE和Firefox的多台机器上确认了这种行为,这让我相信它是一个IIS7设置.

IIS7是否存在与身份验证相关的隐藏设置?除匿名用户跟踪外,网站禁用所有其他身份验证类型.

Jør*_*ode 40

身份验证cookie使用machineKey本地web.config或全局的值加密machine.config.如果没有明确设置这样的密钥,则会自动生成一个密钥,但它不会持久存储到磁盘 - 因此,只要应用程序重新启动或由于不活动而"回收",它就会更改,并且将在下一击.

解决问题就像向服务器上添加<machineKey> 配置部分一样简单web.config(或者可能(最好是?))machine.config(未经测试):

<system.web>
  ...
  <machineKey 
    validationKey="..."
    decryptionKey="..."
    validation="SHA1"
    decryption="AES"/>
  ...
</system.web>
Run Code Online (Sandbox Code Playgroud)

Google 为可以为您生成此部分的网站生成随机计算机密钥.如果您的应用程序处理机密信息,您可能希望自己创建密钥.