求推荐支持Cosmos DB的.NET 5可用Identity Provider(不含EF Core实现)
可选方案推荐
1. 轻量自定义ASP.NET Core Identity存储实现
这是成本最低、适配性最好的方案,你只需要基于正在使用的原生Cosmos DB SDK,实现ASP.NET Core Identity的两个核心存储接口即可:
- 仅需实现
IUserStore<TUser>、IRoleStore<TRole>的基础方法,不需要覆盖所有可选接口,刚好匹配你仅需用户、角色管理的需求 - 上层的密码哈希、身份验证、claim管理等逻辑ASP.NET Core Identity已经全部封装完成,不需要自行开发
- 完全自主控制Cosmos的文档结构、分区键设计、查询逻辑,不会出现EF Core版本适配导致的兼容问题,原生支持.NET 5
2. 现成的非EF Core封装Cosmos Identity包
目前有已封装好的、基于原生Cosmos DB SDK实现的ASP.NET Core Identity适配包,不需要依赖EF Core:
- 仅需做基础配置,注入你已经初始化好的原生Cosmos客户端,指定存储用户、角色的容器即可快速接入
- 内置了用户增删改查、角色管理、密码验证等所有你需要的基础功能,无需从零开发业务逻辑
- 已经完成.NET 5版本兼容验证,不会出现你之前遇到的EF Core版本适配错误
落地注意事项
- Cosmos文档分区键建议设计为用户ID,单租户场景下可以大幅提升用户查询、更新的性能
- 可以复用原EF Core Identity时期的User、Role业务属性,仅需要调整底层数据存取逻辑即可,上层业务代码几乎不需要改动
- 不需要额外引入OAuth2/OIDC相关的复杂组件,仅用ASP.NET Core Identity的核心包就能满足需求
内容的提问来源于stack exchange,提问作者Umer Nawab
相关产品推荐
相关产品推荐

