IIS Expressで実行される2つのASP.NET Webサイトが、異なるポートを持つlocalhost
としてあります。私はFormsAuthentication
を使用して、クッキーによるログインを覚えています。しかし、1つのサイトにログインしたりログアウトしたりすると、他のサイトに影響を与えるため、同じCookieを共有しているように見えます。2つのサイト間でASP.NET Cookieが間違って共有されています
これは一般的な問題ですか、これを避けるために何か微調整できますか?
IIS Expressで実行される2つのASP.NET Webサイトが、異なるポートを持つlocalhost
としてあります。私はFormsAuthentication
を使用して、クッキーによるログインを覚えています。しかし、1つのサイトにログインしたりログアウトしたりすると、他のサイトに影響を与えるため、同じCookieを共有しているように見えます。2つのサイト間でASP.NET Cookieが間違って共有されています
これは一般的な問題ですか、これを避けるために何か微調整できますか?
これは、同じCookie名を持つサイトが原因である可能性があります。
あなたのweb.configファイルでそれを調整することができます。
<authentication mode="Forms"> <forms name=".CookieName" loginUrl="LoginPage.aspx" /> </authentication>
Cookieがホスト名に割り当てられるため、よくある問題です。サイトにAUTHクッキーに異なる名前を付ける必要があります。それを行う方法を確認してください:Can I change the FormsAuthentication cookie name?。
は、同じドメインの下に2つのサイトはありますか?クッキーのパスを指定する必要があるかもしれません。
クッキー名を変更すると、誤ったアプリケーションに送信されたクッキーを阻止されていないことに注意してください。
http cookieは特定のポートに分離されていません。 Are HTTP cookies port specific?
ブラウザはドメインに基づいてCookieを送信し、ポートは考慮しません。
歴史的な理由から、Cookieには数多くのセキュリティとプライバシーの不備が含まれています。たとえば、特定の クッキーが「安全な」接続を意図しているが、セキュア属性 がアクティブネットワーク の存在下で完全性を提供していないことをサーバーが示している可能性があります。同様に、特定のホストのCookieは、Webブラウザで使用される通常の「同一起点ポリシー」 が異なるポート経由で取得されたコンテンツを隔離していても、そのホスト上のポート すべてで共有されます。
同じドメインのアプリにそのCookieを制限する場合は、仮想ディレクトリに固有のCookieを設定する必要があります。 cookie.domain = 'yourdomain/appRootUrl /'のようなものです。
特定のポートにCookieが隔離されていません。 [http cookies specific port](http://stackoverflow.com/questions/1612177/are-http-cookies-port-specific)を参照してください。 – cobolstinks