Microsoft.Extensions.Identity.Stores 和 Microsoft.Extensions.Identity.Core 和 Microsoft.AspNetCore.Identity 之间有什么区别?

Beh*_*nam 5 asp.net-core

我对 asp.net 核心标识中的三个包感到困惑。我不知道彼此之间有什么区别。还有哪些是我们应该使用的?

我在 GitHub 上找到了这个链接,但我没有找到。

Microsoft.Extensions.Identity.Stores 和 Microsoft.AspNetCore.Identity 之间的区别

Rya*_*yan 7

  • Microsoft.Extensions.Identity.Core

该组件包含了整个asp.net芯身份框架的实体定义,大致包括IdentityUserIdentityRoleIdentityUserRoleIdentityUserClaimIdentityRoleClaimIdentityUserLogin。它也可以被理解为一个数据库表。

  • Microsoft.Extensions.Identity.Stores

该组件主要用于对上述实体进行基本的CRUD,包括用户管理(UserManager)和角色管理(RoleManager),以及一些可以进行的配置,如用户名限制、密码验证等。具体的存储实现需要下载其他包,比如Microsoft.AspNetCore.Identity.EntityFrameworkCore哪个是使用EF Core进行数据存储的实现。

  • Microsoft.AspNetCore.Identity

该程序集用于管理 AspNetCore 项目中的身份验证和授权,还包括 AspNetCore 项目中的基本配置。比如使用Identity框架,需要services.AddIdentity <TUser> ()ConfigureServices方法中执行。

基础二次开发基于以上核心包。如果你想让asp.net core Identity支持其他的ORM框架,比如Dapper,那么可以Microsoft.Extensions.Identity.Stores用于二次开发。或者如果一些业务逻辑不能满足你的特殊需求,也是使用这个包来开发的。

如果要扩展该字段,则需要Microsoft.Extensions.Identity.Core包,并继承相关类。

  • 我刚刚下载了 Identity.Core 包,它似乎与您在这里所说的不同。所以我会考虑更新这个答案,因为 .NET Core Identity 3.1 似乎已经发生了一些变化。 (2认同)