Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/asp.net-mvc-3/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net mvc 3 mvc3中类似tumblr的自定义域名跨域身份验证_Asp.net Mvc 3_Authentication_Web Config - Fatal编程技术网

Asp.net mvc 3 mvc3中类似tumblr的自定义域名跨域身份验证

Asp.net mvc 3 mvc3中类似tumblr的自定义域名跨域身份验证,asp.net-mvc-3,authentication,web-config,Asp.net Mvc 3,Authentication,Web Config,在我们的项目中,我们为用户提供类似tumblr的子域以及自定义域名,如“mydomain.com”。因此,我有一个相同的服务器和一个应用程序,但域名不同 dns和路由都可以正常工作,但我遇到了身份验证问题。只需在web配置中指定计算机密钥和域名,就可以解决主域和子域的共享身份验证问题 <authentication mode="Forms"> <forms domain="xxx.com" loginUrl="~/account/logon" tim

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

dns和路由都可以正常工作,但我遇到了身份验证问题。只需在web配置中指定计算机密钥和域名,就可以解决主域和子域的共享身份验证问题

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

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

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

编辑

有关更多信息,请参阅如何解决此问题

    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();