在我们的项目中,我们为用户提供了类似 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 在任何域之间共享特定服务器的身份验证数据?或者,如果我知道域名和机器密钥,也许我可以在服务器端检索这些信息?