了解 ASP.NET Core 标识
在本单元中,你了解标识体系结构。
ASP.NET Core Identity 体系结构
ASP.NET Core 标识是一个成员身份系统,可将用户注册和登录功能添加到 ASP.NET Core Web UI。 成员身份系统处理身份验证和授权问题。 身份验证涉及你的身份。 授权涉及允许你进行的操作。 因此,身份验证是授权的先决条件。
作为本地帐户创建的替代方案,标识支持 Facebook 和 Twitter 等外部登录提供程序。 使用基于 Cookie 的身份验证保存用户会话。 默认情况下,在登录时会创建 Cookie,并在注销时销毁。
使用所选的数据存储和数据访问技术保存成员身份数据。 默认数据访问技术是称为 Entity Framework (EF) Core 的对象关系映射程序 (O/RM)。 默认数据存储是 SQL Server。
EF Core 简化了与基础数据库的交互。 因此,EF Core 通常可以通过标识使用任何数据库提供程序。 数据库提供程序可用于 SQL Server、SQLite 和其他几种数据存储。 标识还使你可以灵活使用所选的数据访问技术。 Dapper 是一种常用的替代选项。
下图描述了本模块中使用的标识体系结构:
在上图中:
- ASP.NET Core Razor Pages 应用表示在本模块中向其添加标识支持的 Web UI。
- Identity Manager 层包含
Microsoft.AspNetCore.Identity
命名空间中使用的类。 本模块中显式使用的此类的示例是SignInManager<TUser>
和UserManager<TUser>
。 - EF Core 标识存储区层包含
Microsoft.AspNetCore.Identity.EntityFrameworkCore
命名空间中的类。 本模块中隐式使用的此类的示例是UserStore<TUser>
。 - 数据库提供程序是一种特定于数据库的库,它接受来自 EF Core 提供程序(未示出)的 SQL 并执行它。
EF Core 使用一项称为迁移的功能来增量更新数据库架构,使其与应用的数据模型保持同步。 应用初始 EF Core 迁移后,将创建支持的数据库表。 下图描述了支持的表的架构:
注意
上图显示了数据库中的键和关系。 键为“一”,无限大(横着的数字 8)为“多”。 一个数据库可具有一对一关系、一对多关系和多对多关系类型。 键是唯一的。 此图显示这些联接是如何创建的以及相关关系。
总结
在本单元中,你了解了 ASP.NET Core Identity 体系结构。 在下一单元中,你将向现有应用添加默认 ASP.NET Core Identity 实现。