【问题标题】:Simple Membership Sub-Domain Authentication简单的会员子域认证
【发布时间】:2012-10-08 04:52:53
【问题描述】:

我希望为通配符子域应用程序实施简单成员身份验证。用户将登录到根站点(即 www.localhost.com)并被重定向到伪子域站点(www.user1.localhost.com)。服务器上只有一个应用程序。

以下用于身份验证的 web.config 条目不起作用:

<authentication mode="Forms">
  <forms loginUrl="~/Account/SignIn" timeout="2880" domain=".localhost" />
</authentication>

上述条目不会对进入根站点或任何用户特定站点的用户进行身份验证。我的本地 hosts 文件配置正确。

这种身份验证方案是否可以使用简单成员资格?我错过了一步吗?

【问题讨论】:

    标签: asp.net-mvc asp.net-mvc-4 forms-authentication simplemembership


    【解决方案1】:

    无论您使用的是 SMP 还是标准的会员资格提供商,都与 FormsAuthentication 过程和 cookie 传输和解密无关。

    除了将domain 属性设置为您的顶级域之外,请确保您在两个应用程序上配置了相同的machine keys

    【讨论】:

    • 我只针对一个应用程序进行身份验证。该应用程序将设置一个通配符 DNS 条目,以将所有流量、虚假子域或其他流量传递到同一应用程序。我还需要配置机器密钥吗?
    • 不,如果是同一个应用程序则不需要配置机器密钥。使用 FireBug 查看是否为后续请求发送了身份验证 cookie。
    • .ASPXAUTH cookie 在身份验证后发送给 localhost.com 的后续请求。在 localhost.com 上进行身份验证后尝试导航到 sample.localhost.com 时,不会发送 cookie。
    • 您可以尝试使用与localhost不同的域名吗?
    • 从 localhost 切换到 ..com 有效。我将 web.config authentication/forms 部分中的域属性更新为 domain="...com" ,并且顶级域和子域的身份验证工作正常。感谢您的所有帮助!
    猜你喜欢
    • 2011-05-17
    • 1970-01-01
    • 2018-01-03
    • 2016-06-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多