【问题标题】:Copy Paste Site on IIS - Authentication issue在 IIS 上复制粘贴站点 - 身份验证问题
【发布时间】:2014-10-27 22:01:01
【问题描述】:
我正在开发一个使用表单身份验证的 MVC .NET 项目。我试图制作该站点的副本并将其发布到 IIS(不同的虚拟目录)上。我注意到我无法同时对两个站点进行身份验证:当我访问一个站点时,我会自动与另一个站点断开连接。为了使用户可以同时访问它们,应该进行哪些更改?是 cookie 的问题吗?
我认为是这样,因为当我检查站点元素时,很明显 _ASPXAUTH cookie 对它们都具有相同的值。我应该改变什么?
【问题讨论】:
标签:
asp.net-mvc-4
authentication
iis
cookies
【解决方案1】:
是 cookie 问题吗?
是的,很可能。两个网站之间的 SSO 在很大程度上取决于它们托管的域。如果它们托管在同一顶级域下的 2 个子域上,例如 site1.example.com 和 site2.example.com,为了在它们之间实现 SSO,您需要做的就是在表单身份验证上设置域属性cookie 到 .example.com 并确保两个应用程序共享相同的机器密钥:
<authentication mode="Forms">
<forms protection="All" domain=".example.com" />
</authentication>
<machineKey validationKey="XXXXX" decryptionKey="XXX" validation="SHA1" decryption="AES" />
如果这两个站点位于不同的顶级域上,例如 example1.com 和 example2.com,那么您需要做更多的工作才能实现跨域 SSO。你可以在this answer找到一些细节。
更新:
我可能误读了您的问题。您似乎不想在网站之间进行 SSO,而是希望进行单独的身份验证。在这种情况下,您只需要为它们两个设置一个不同的 cookie 名称:
<forms name="SITE1AUTH" />
和:
<forms name="SITE2AUTH" />