「WebApplication1」という新しいWebアプリケーションを作成します.WebFormsは認証がIndividual User Accountに設定されています。私は自動生成されたコードテンプレートに1行のコードを追加しません。私はアプリケーションを実行し、ユーザー "User1"を登録してログインしても問題ありません。1つのサイトのASP.NET IDログインが同じマシン上の異なるWebサイトと共有されるのはなぜですか?
今度は別のWebアプリケーション "WebApplication2"を作成します.WebFormsと同じWebFormsで、AuthenticationをIndividual User Accountに設定します。もう一度コードと私はアプリケーションを実行します。今私は "User2"と言う別のユーザーを作成 - うまく動作します。
問題は、両方のアプリケーションが同時に実行されているときに開始されます。 「User1」として最初のサイトにログインした場合、「User1」が登録されていなくても、自動的に「web1」という2番目のサイトのContext.User.Identityが「User1」に設定され、あるサイトからログアウトし、もう1つはログアウトします。
Context.User.Identityがどのように共有されていますか?
コードが全く同じである -
public static void SignIn(UserManager manager, ApplicationUser user, bool isPersistent){
IAuthenticationManager authenticationManager = HttpContext.Current.GetOwinContext().Authentication;
authenticationManager.SignOut(DefaultAuthenticationTypes.ExternalCookie);
var identity = manager.CreateIdentity(user, DefaultAuthenticationTypes.ApplicationCookie);
authenticationManager.SignIn(new AuthenticationProperties() { IsPersistent = isPersistent }, identity);
}
私は確信してASP.Netアイデンティティは非常に私を助けてくださいどのように機能するかについていくつかの基本的な知識が不足しています。
ありがとうございます。
優れた質問と、以下の優れた受け入れ答え。質問タイトルを「質問-ish」という名前に変更することをお勧めします。「1つのサイトのASP.NET IDログインが同じマシン上の異なるWebサイトと共有されるのはなぜですか? (またはそのようなもの...) – Funka
@Funka - あなたの提案に応じて変更された質問。 –