2017-12-15 5 views
1

現在、私たちは2つのWebサイトを開発していますが、1つのデータベースを共有しています。ログインなどUser.Identity wrong wrong user

サイトAとサイトBのIDユーザエンティティ定義は

public class UserA : IdentityUser 
{ 
    ... 

    public async Task<ClaimsIdentity> GenerateUserIdentityAsync(UserManager<UserA > manager) 
    { 
     var userIdentity = await manager.CreateIdentityAsync(this, DefaultAuthenticationTypes.ApplicationCookie); 

     // Add custom user claims here 

     return userIdentity; 
    } 
} 

public class UserB : IdentityUser 
{ 
    ... 

    public async Task<ClaimsIdentity> GenerateUserIdentityAsync(UserManager<UserB > manager) 
    { 
     var userIdentity = await manager.CreateIdentityAsync(this, DefaultAuthenticationTypes.ApplicationCookie); 

     // Add custom user claims here 

     return userIdentity; 
    } 
} 

ユーザーAとユーザーBのエンティティは、データベース内の異なる表にマッピングされている以下の通りですアカウント設定。

問題が

  • を起動し、同じブラウザでWebサイトAとB以下の通りである
  • ログインサイトB - 問題はない
  • ログインサイトA - 問題はない
  • 更新ウェブサイトBのインデックスページ、ユーザー名はウェブサイトAにログインしたものを表示します。間違っていると、ユーザー名はcshtmlの下に表示されます:

    <div>@User.Identity.Name</div> 
    

詳しいアイデアはありますか?

答えて

2

これは、ログインしたユーザー、DefaultAuthenticationTypes.ApplicationCookieを追跡するためにCookieを使用しているため、これは予想される動作です。あなたがしようとしていることを有効にする場合や、アプリケーションのいずれかのCookieの名前を変更する場合は、Chromeプロファイルのようなものを使用する必要があります。このようなもの、http://tech.trailmax.info/2014/07/rename-authentication-cookie-name-of-asp-net-identity/

+0

ありがとう –

関連する問題