【问题标题】: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.comexample2.com,那么您需要做更多的工作才能实现跨域 SSO。你可以在this answer找到一些细节。


    更新:

    我可能误读了您的问题。您似乎不想在网站之间进行 SSO,而是希望进行单独的身份验证。在这种情况下,您只需要为它们两个设置一个不同的 cookie 名称:

    <forms name="SITE1AUTH" />
    

    和:

    <forms name="SITE2AUTH" />
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-02-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多