是否有任何关于 UserManager 的信息,它在<TUser> Microsoft.AspNet.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还是必须仅使用默认实现,为什么?

如果问题是蹩脚的,那就太好了,但是有很多关于UserStore的信息,但没有关于UserManager, RoleManager的信息。

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

这些方法仅在实现 IRoleStore 时才有效

相关内容

  • 没有找到相关文章

最新更新