推荐使用AspNetCore.Identity.MongoDbCore - 让你的ASP.NET Core应用拥抱MongoDB!
在构建现代Web应用时,身份验证和授权是不可或缺的一部分。AspNetCore.Identity.MongoDbCore 是一个为ASP.NET Core Identity 2.0 和 3.1 设计的MongoDB适配器,它允许你在享受MongoDB的灵活性和性能的同时,利用微软的身份管理框架。
项目介绍
AspNetCore.Identity.MongoDbCore是一个强大的库,它将标准的SQL服务器存储替换为MongoDB,适用于依赖于Microsoft.AspNetCore.Identity的项目。此项目已经过737个集成测试和单元测试的验证,确保与原生的Microsoft.AspNetCore.Identity.EntityFrameworkCore.Test
测试套件兼容性。
支持.NET Standard 2.1
和.NET Core 3.1
,你可以通过Nuget包轻松安装:
Install-Package AspNetCore.Identity.MongoDbCore
项目技术分析
项目的核心在于提供MongoUserStore
和MongoRoleStore
,它们实现了IUserStore
和IRoleStore
接口,让你可以使用MongoDB来存储用户和角色信息。MongoDbIdentityUser
和MongoIdentityRole
类作为基础,允许你自定义用户和角色实体,并指定主键类型(例如,
Guid
或
ObjectId
)。
集合名称自动设置为类名的复数形式,如ApplicationUser
变为applicationUsers
,但可以通过MongoDbGenericRepository
中的CollectionName
属性进行自定义。
配置过程简单,只需几行代码即可集成到你的服务中:
services.AddIdentity<ApplicationUser, ApplicationRole>()
.AddMongoDbStores<ApplicationUser, ApplicationRole, Guid>("mongodb://localhost:27017", "MongoDbTests")
.AddDefaultTokenProviders();
应用场景
在任何需要使用MongoDB存储用户和角色信息的ASP.NET Core应用中,这个项目都是完美的选择。特别适合那些希望利用NoSQL数据库优势,如弹性扩展、分布式数据存储以及对JSON文档友好特性的项目。
项目特点
- 灵活性: 可以使用
GuidId
或者ObjectId
作为用户和角色的主键。 - 易于集成: 通过扩展方法无缝地添加到你的服务容器中。
- 全面测试: 已经通过大量的单元和集成测试,确保了稳定性。
- 可配置: 支持自定义MongoDB连接字符串、数据库名,甚至可以调整
IdentityOptions
。 - 社区支持: 由Alexandre Spieser维护,遵循MIT许可,鼓励贡献和使用。
总的来说,AspNetCore.Identity.MongoDbCore是开发者将ASP.NET Core Identity系统与MongoDB结合的最佳实践之一。如果你正在寻找一种无需SQL、适应高并发场景的身份认证解决方案,那么这是一个值得一试的选择。现在就加入并享受MongoDB带来的便利吧!