0

2 つの異なる mvc3 プロジェクトがあります。奇妙なことに、Web のいずれかにログインすると、もう 1 つの自動ログインは同じアカウント名を使用します。

 FormsAuthentication.SetAuthCookie(model.UserName, model.RememberMe);

私にはとても奇妙です。誰かがそれを説明できますか?どうすればそれを防ぐことができますか?

4

1 に答える 1

1

FormsAuthentication は Cookie を介して機能し、ブラウザーは異なるドメイン間での共有 Cookie を許可しません。ただし、同じドメイン間で共有することを許可します。これは、ローカルホストで実行しているときに発生します。このような状況を回避するには、web.config ファイルの Cookie 名を変更してください。

Cookie 名を指定しない場合は、デフォルト名が使用されます。web.config で手動で Cookie 名を指定し、認証要素を検索して、そのブロックを次のように置き換えます。

    <authentication mode="Forms">
       <forms name=".yourCustomCookieName" loginUrl="~/Account/Login" timeout="2880" />
    </authentication>

ここで .yourCustomCookieName はあなたの Cookie 名です。

于 2012-05-08T10:58:21.890 に答える