【问题标题】:Sharing ASP.NET authentication between sites在站点之间共享 ASP.NET 身份验证
【发布时间】:2010-12-20 09:32:28
【问题描述】:

我们正在使用子域启动一个新网站,并且需要确保登录到原始(主域)站点的用户也在新站点中经过身份验证。

我认为我需要确保所有相关的 web.config 设置(表单身份验证、cookie 名称等)在两个应用程序中都相同,并且还手动设置 machineKey 验证密钥/解密密钥(同样,在两个应用程序中相同)。

我的问题是,如果我现在在我的主应用程序中手动设置这些密钥,它会破坏现有的登录吗?

我们使用“散列”格式的密码。

【问题讨论】:

    标签: asp.net cookies asp.net-membership


    【解决方案1】:

    取决于您所说的“中断”是什么意思。如果您修改机器密钥/加密密钥,人们可能需要重新登录,但登录功能将继续像以前一样工作。

    您还需要确保您的 cookie 的域在两个地方都设置为 domain.com(没有 www),否则身份验证 cookie 将不会在站点之间正确分片。

    【讨论】:

    • 为了补充这个响应,cookie 域设置在 web.config 中的
      元素上:msdn.microsoft.com/en-us/library/1d3t3c61.aspx。请注意,如果您有其他需要在同一域上进行不同身份验证的站点也运行 asp.net,则这将不起作用。
    • 我最初担心的是,更改验证/解密密钥可能会以某种方式破坏(或导致无法使用)存储在数据库中的散列密码。这(很高兴)并非如此,上面提到的方法非常有效。谢谢。
    猜你喜欢
    • 1970-01-01
    • 2016-07-27
    • 2011-11-23
    • 1970-01-01
    • 2011-10-10
    • 1970-01-01
    • 2010-12-07
    • 2014-08-10
    相关资源
    最近更新 更多