我正在尝试跨多个服务器和子域设置表单身份验证,但我发现它适用于我们的某些盒子而不是其他盒子的问题。我们将 2 个 cookie 从一台服务器传递到另一台服务器。一个是 Forms Authentication 加密 cookie,另一个是非加密 cookie。
我们在两个盒子上都设置了正确的键:
<authentication mode="Forms" >
<forms name=".MSLA" protection="All" timeout="30" slidingExpiration="true" path="/"
enableCrossAppRedirects="true" />
</authentication>
<machineKey
decryption="AES"
decryptionKey="CAB....."
validation="AES"
validationKey="A2........."
/>
我们正在设置正确的 cookie 域,例如。.bbbb.com 作为一个站点将是http://login.bbbb.com,另一个是http://app.bbbb.com。
我们正在使用 ASP.net 和 .Net 4.0
在有效的盒子上,我发现 isAutenticated 为真,并且 Forms Authentication 用户名已解密,但是在其他不起作用的盒子中,我发现非表单身份验证 cookie 已正确传递并读取,但表单身份验证 cookie 已通过(我可以通过 Firebug 看到),但第二个站点无法解密它,因此 isAuthenicated 为 False。
我们正在使用 Windows server 2008 和一个月前应用的更新。
我已经看到了与我的问题类似的文章,并且我已经尝试过,但这对我不起作用。
有没有人遇到过这个问题?我认为它必须更多是服务器设置问题而不是代码,因为我能够让它在某些服务器而不是其他服务器上工作。是否有可能需要添加到这些服务器的功能?