2014-02-05 20 views
2

我想用小巧玲瓏創建我自己的實現Microsoft.AspNet.Identity存儲數據的任何信息(這意味着,我刪除的EntityFramework默認實現)。有沒有約的UserManager <TUser>這是Microsoft.AspNet.Identity

我創建MyUserStore,即實現IUserStore,並將它傳遞到UserManager這樣的:

private UserManager<User> _userManager { get; set; } 

    public AccountController() : this(new UserManager<User>(new MyUserStore())) {} 

    public AccountController(UserManager<User> userManager) { 
     _userManager = userManager; 
    } 

,一切都很好,直到我不想添加角色(我在MyUserStore接口IUserRoleStore實現)。

當我看着UserManager簽名,我是一個有點困惑,因爲我不知道這些方法是如何工作的:

[AsyncStateMachine(X)] 
[DebuggerStepThrough] 
public virtual Task<IList<string>> GetRolesAsync(string userId); 
[AsyncStateMachine(X)] 
[DebuggerStepThrough] 
public virtual Task<bool> IsInRoleAsync(string userId, string role); 

我可以打電話給他們,可以看到,我如何進入MyUserStore,但在肯定其他方法:

public Task<IList<string>> GetRolesAsync(User user) 
public Task<bool> IsInRoleAsync(User user, string role) 

所以,我卡住了一點,因爲我不明白,我應該怎麼做UserManager和方式,與RoleManager

我應該實現自己的UserManager還是隻能使用默認實現?爲什麼?

Sry如果問題是跛腳,但有很多關於UserStore的信息,但沒有關於UserManager, RoleManager e.t.c.

回答

1

在選擇實現自己的UserStore時,您可以實現角色,但是您想要存儲角色。如果實現IRoleStore

+0

我知道,但我應該怎麼做'UserManager'

這些方法只會工作? – FSou1

+0

你可以將你的UserStore插入UserManager,它將使用它。你能否重新解釋你的問題? Myabe我不完全理解你的問題。 –