【发布时间】:2012-07-22 15:13:28
【问题描述】:
我正在尝试跨多个服务器和子域设置表单身份验证,但我发现它在我们的某些机器上工作而不是在其他机器上工作的问题。我们将 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 为真,并且表单身份验证用户名已解密,但是在其他不起作用的盒子中,我发现非表单身份验证 cookie 已正确传递并读取但是表单身份验证 cookie 已通过(我可以通过 Firebug 看到),但第二个站点无法解密它,因此 isAuthenicated 为 False。
我们使用的是 Windows server 2008 和一个月前应用的更新。
我看过这篇与我的问题类似的文章,我已经尝试过了,但这对我不起作用。
Similar Article with same issue but doesn't work
以前有人遇到过这个问题吗?我认为它必须更多是服务器设置问题而不是代码,因为我能够让它在某些服务器而不是其他服务器上工作。 是否有可能需要添加到这些服务器的功能?
【问题讨论】:
标签: asp.net .net forms-authentication session-cookies subdomain