主要是AspNet Identity用于身份验证,但它也依赖于非常重要的域实体,如用户,角色等。大多数情况下,业务逻辑还会操纵所有这些域,至少检查用户是否具有该角色,或者甚至可以读取整个用户列表并将其转发到前端。
这将是在Entity Framework中使用AspNet Identity的标准DbContext实现。
public class ApplicationDbContext : IdentityDbContext<User>
{
public ApplicationDbContext()
: base("DefaultConnection")
{
}
}
IdentityDbContext提供那些用户,角色和此类DbSet,因此显然您可以像访问其他任何域实体一样访问这些域实体,但它们是只读的。
因此,有两种方法可以访问例如用户和角色,可以通过公开特定方法的UserManager,也可以通过DbContext自行编写DbSet。
问题: 有没有什么可以使用UserManager而不是通过业务逻辑混合DbSets和UserManager?
我期望的一件事是DbSet可能更容易模拟单元测试,因为对于UserManager,你必须模拟UserStore,如果你使用它的大部分功能,甚至更多。