【发布时间】:2020-03-19 14:13:36
【问题描述】:
我对 asp.net 核心标识中的三个包感到困惑。我不知道彼此之间有什么区别。还有我们应该使用哪一个?
我在 GitHub 上找到了这个链接,但我没有得到它。
Difference between Microsoft.Extensions.Identity.Stores and Microsoft.AspNetCore.Identity
【问题讨论】:
标签: asp.net-core
我对 asp.net 核心标识中的三个包感到困惑。我不知道彼此之间有什么区别。还有我们应该使用哪一个?
我在 GitHub 上找到了这个链接,但我没有得到它。
Difference between Microsoft.Extensions.Identity.Stores and Microsoft.AspNetCore.Identity
【问题讨论】:
标签: asp.net-core
这个程序集包含了整个asp.net core Identity框架的实体定义,大致包括IdentityUser,IdentityRole,IdentityUserRole,IdentityUserClaim,IdentityRoleClaim,IdentityUserLogin。也可以这样理解作为数据库表。
这个程序集主要用于对以上实体进行基本的CRUD,包括用户管理(UserManager)和角色管理(RoleManager),以及一些可以进行的配置,比如用户名限制、密码验证, 等等。具体的存储实现需要下载其他包,比如Microsoft.AspNetCore.Identity.EntityFrameworkCore就是使用EF Core实现的数据存储。
此程序集用于管理 AspNetCore 项目中的身份验证和授权,还包括 AspNetCore 项目中的基本配置。比如要使用Identity框架,需要在ConfigureServices方法中执行services.AddIdentity <TUser> ()。
基础二次开发是基于以上核心包。如果希望asp.net core Identity支持其他ORM框架,比如Dapper,那么可以使用Microsoft.Extensions.Identity.Stores进行二次开发。或者如果一些业务
逻辑不满足你的特殊需求,也是用这个包开发的。
如果要扩展字段,需要Microsoft.Extensions.Identity.Core包,并继承相关类。
【讨论】: