是否有关于Microsoft.AspNet.Identity </tuser>中的UserManager <tuser>的任何信息

时间:2014-02-05 21:27:45

标签: asp.net-mvc asp.net-identity

我想使用 Dapper 创建我自己的Microsoft.AspNet.Identity存储数据实现(这意味着,我删除了EntityFramework默认实现)。

我创建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 个答案:

答案 0 :(得分:1)

在选择实施自己的UserStore时,您可以实现角色,但是要存储角色。

这些方法仅在您实施IRoleStore

时才有效