ASP.NET标识 - 自定义UserManager,UserStore

时间:2016-11-09 07:22:02

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

我对自定义UserManager和UserStore有点困惑。 开箱即用的解决方案带有EF实现,我不想使用EF,但我自己的DAL使用MSSQL。我想要基于声明的安全性,其中一个用户声明将成为角色。

我感到困惑的是我应该做的整个过程。从我到目前为止看来,我需要制作自己的

CustomApplicationUser : IUser
CustomUserManager : UserManager<CustomApplicationUser>
CustomUserStore : IUserStore, IUserClaimStore

问题:

  1. 我是否走上正轨?
  2. 我想在我的CustomUserManager上使用IsInRole()方法,但不知道如何使用Claims。我知道有一个IUserRoleStore.IsInRole()默认UserManager在UserManager.IsInRole()中调用,但我不想在我的数据库中使用单独的Roles表。我想要的是Claim DB表,其中一个ClaimType是Role,而UserManager.IsInRole()使用它。 现在,我不确定为什么我需要UserManager.IsInRole()方法?我是否真的需要拥有自定义ClaimsIdentity SignInManager.CreateUserIdentityAsync()之类的东西,并在其中调用我自己的实现填写所有用户信息,包括声明?
  3. 这对我来说似乎有点混乱,我似乎无法找到一些明确的文档,所以如果有人能够对它有所了解,我会非常感激它!

1 个答案:

答案 0 :(得分:7)

我不会只是复制,而是指向以下文章:Overview of Custom Storage Providers for ASP.NET Identity

看看这个,它应该很好地概述了身份在ASP.NET中的工作原理。在您的应用程序中选择要覆盖和自定义的内容也很有用。

相关问题