私たちのプロジェクトでは、サブドメインのような tumblr と、「mydomain.com」のようなカスタム ドメイン名をユーザーに提供しています。したがって、同じサーバーとアプリケーションが 1 つずつありますが、ドメイン名が異なります。
DNS とルーティングではすべて正常に動作しますが、認証の問題に直面しました。メイン ドメインとサブドメインの共有認証は、Web 構成でマシン キーとドメイン名を指定するだけで解決できます。
<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();
結局、カスタム ドメイン名にクロス ドメイン認証を実装する方法がまだわかりません。ドメイン間で特定のサーバーの認証データを共有することは可能ですか? または、ドメイン名とマシンキーを知っていれば、サーバー側でこの情報を取得できますか?