SetAuthCookie
同じサーバー上の異なるアプリケーションでどのように機能するか知りたいですか?
現在、異なる仮想ディレクトリを持つ 2 つの同様のアプリケーションがあります。
それらの1つにログインすると、他のアプリケーションでのログインを求められないようにするにはどうすればよいですか?ログアウトの場合も同様です?
SetAuthCookie
同じサーバー上の異なるアプリケーションでどのように機能するか知りたいですか?
現在、異なる仮想ディレクトリを持つ 2 つの同様のアプリケーションがあります。
それらの1つにログインすると、他のアプリケーションでのログインを求められないようにするにはどうすればよいですか?ログアウトの場合も同様です?
両方のアプリケーションが同じ最上位ドメインでホストされている場合に可能です。両方のアプリケーションの web.config でこのドメインを指定する必要があります。
<forms
name="name"
loginUrl="URL"
defaultUrl="URL"
domain="example.com">
</forms>
このようにして、フォーム認証 Cookie がdomain
プロパティ設定と共に発行され、クライアントは 2 つのアプリケーション間で効果的に送信します。もう 1 つの前提条件は、最初のアプリケーションで暗号化された認証 Cookie を 2 番目のアプリケーションで正常に復号化できるように、両方のアプリケーションが同じマシン キーを共有することです。両方のアプリケーションが同じサーバーでホストされている場合は、これらのマシン キーを machine.config に設定できます。そうでない場合は、各アプリケーションの web.config に設定できます。
<system.web>
<machineKey decryption="AES" decryptionKey="C03B1AB0BC1ACCD18EA915CBD87373010AD0DEC430A69871,IsolateApps" validation="AES" validationKey="C0ED7C430148AD4BC6505085DA4FD0DD3EE2453B566FC4EA4C7B3C2DCAB2025A79C774370CA884DF909CE9A3D379E544B7890D0A1CEE164141D3A966999DC625,IsolateApps" />
</system.web>
これについては、次の回答でも説明しました。
投稿も古いですが、web.configのフォームタグに「名前」を追加する簡単な解決策があります。Cookieに名前を付けないと、デフォルトの名前になります
<authentication mode="Forms">
<forms loginUrl="~/Account/LogOn" timeout="2880" name="client" />
</authentication>
他のアプリケーションに別の名前を付けた場合、それは私と完全に連携します。幸運を