0

在我们的项目中,我们为用户提供了类似 tumblr 的子域以及像“mydomain.com”这样的自定义域名。所以我有一台相同的服务器和一个应用程序,但域名不同。

dns 和路由一切正常,但我遇到了身份验证问题。只需在 web config 中指定机器密钥和域名即可解决主域和子域的共享身份验证。

    <authentication mode="Forms">
          <forms domain="xxx.com" loginUrl="~/account/logon" timeout="2880" />
    </authentication>

但在这种情况下,我有“退出”问题,所以即使在我添加了这些代码行之后,退出也不起作用(我找到了这个问题的所有解决方案):

    formsAuthentication.SingOut();
    Session.Abandon();
    HttpCookie cookie1 = new HttpCookie(FormsAuthentication.FormsCookieName, "");
    cookie1.Expires = DateTime.Now.AddYears(-1);
    Response.Cookies.Add(cookie1);
    HttpCookie cookie2 = new HttpCookie("ASP.NET_SessionId", "");
    cookie2.Expires = DateTime.Now.AddYears(-1);
    Response.Cookies.Add(cookie2);
    Response.Cache.SetCacheability(HttpCacheability.NoCache);
    Response.Cache.SetNoStore();

毕竟我还是不知道怎么实现自定义域名的跨域认证。是否有可能 somehome 在任何域之间共享特定服务器的身份验证数据?或者,如果我知道域名和机器密钥,也许我可以在服务器端检索这些信息?

4

1 回答 1

1

一种解决方法是在本地存储中设置用户信息,客户端从“主域”设置,然后设置由子域创建的 cookie,但是对于所有唱入/出操作,您必须使用“主域”搜索 stakoverflow 和所有兄弟网站的工作方式,因为他们使用 SSO,所以解决这个问题,无论如何,也许这篇文章对你有帮助。

编辑

有关如何解决自动登录问题的更多信息

于 2013-10-01T14:13:48.013 回答