2016-04-18 8 views
1

私はIdentity Frameworkを使用しています。私は私のアプリにログインすると 、APPUSERは次のようにのUserManagerを取得します。UserManager.FindAsyncは、FindByNameAsyncの代わりにカスタムUserstoreのFindByIdAsyncメソッドを使用します。

Patient patient = await UserManager.FindAsync(model.Id, model.Password); 

私はデバッグの理解では、UserManager.FindAsyncはUSERSTORE(私はカスタムUSERSTOREを持っている)からFindByNameAsync(string userName)を使用しています。

質問:FindByNameAsyncの代わりに私のカスタムUserStoreのFindByIdAsyncメソッドを使用するようにUserManager.FindAsyncに指示する方法は?

カスタムUserManagerも作成する必要がありますか?

ありがとうございます。

答えて

1

カスタムのUserManagerのメソッドをオーバーライドすることができ

public class ApplicationUserManager : UserManager<AppUser, string> 
{ 
    public override async Task<AppUser> FindAsync(string id, string password) 
    { 
     var user = await FindByIdAsync(id).WithCurrentCulture(); 
     if (user == null) 
     { 
      return null; 
     } 
     return await CheckPasswordAsync(user, password).WithCurrentCulture() ? user : null; 
    } 
} 
関連する問題