- ASP.NET Core 教程
- ASP.NET Core - 主页
- ASP.NET Core - 概述
- ASP.NET Core - 环境设置
- ASP.NET Core - 新项目
- ASP.NET Core - 项目布局
- ASP.NET Core - Project.Json
- ASP.NET Core - 配置
- ASP.NET Core - 中间件
- ASP.NET Core - 异常
- ASP.NET Core - 静态文件
- ASP.NET Core - 设置 MVC
- ASP.NET Core - MVC 设计模式
- ASP.NET Core - 路由
- ASP.NET Core - 属性路由
- ASP.NET Core - 行动结果
- ASP.NET Core - 视图
- 设置实体框架
- ASP.NET Core - DBContext
- ASP.NET Core - Razor 布局视图
- ASP.NET Core - Razor 视图启动
- ASP.NET Core - Razor 视图导入
- ASP.NET Core - Razor 标签助手
- ASP.NET Core - Razor 编辑表单
- ASP.NET Core - 身份概述
- ASP.NET Core - 授权属性
- 身份配置
- ASP.NET Core - 身份迁移
- ASP.NET Core - 用户注册
- ASP.NET Core - 创建用户
- ASP.NET Core - 登录和注销
- ASP.NET Core 有用资源
- ASP.NET Core - 快速指南
- ASP.NET Core - 有用的资源
- ASP.NET Core - 讨论
ASP.NET Core - 身份概述
在本章中,我们将简要讨论 ASP.NET Core Identity 框架。ASP.NET Core Identity框架用于实现表单身份验证。有许多选项可供选择来识别您的用户,包括 Windows 身份验证以及所有第三方身份提供商(例如 Google、Microsoft、Facebook 和 GitHub 等)。
Identity 框架是我们将添加到应用程序的 project.js 文件中的另一个依赖项。
该框架允许我们添加用户可以使用本地密码注册和登录的功能。
该框架还支持双因素身份验证、第三方身份提供商和其他功能。
我们将重点关注用户可以注册、登录和注销的场景。
为此,我们需要创建一个 User 实体,该类将从 Identity 框架中的基类继承,基类为我们提供标准用户属性,例如用户名和电子邮件地址。
我们可以在此类中包含任意数量的附加属性来存储有关用户的信息。
我们需要将这个 User 类插入到 Identity 框架提供的 UserStore 类中。
UserStore 是我们的代码用来创建用户和验证用户密码的类。
最终,UserStore 将与数据库通信。身份框架支持实体框架以及所有可与实体框架配合使用的数据库。
但是您可以实现自己的 UserStore 以使用任何数据源。
为了正确使用实体框架,我们的 User 类还将插入到 IdentityDb 类中。
这是一个使用实体框架 DBContext 来完成实际数据库工作的类。
我们需要通过让现有的 DataContext 类继承 IdentityDb 而不是实体框架的 DBContext 来将此 IdentityDb 包含到我们的应用程序中。
IdentityDb 和 UserStore 协同工作来存储用户信息并验证用户密码(数据库中的哈希密码)。
我们需要了解 ASP.NET Core Identity Framework 的两个部分
登录管理器
这是身份框架的两个部分之一 -
顾名思义,一旦我们验证密码, SignInManager就可以登录用户。
我们还可以使用此管理器来注销用户。
通过表单身份验证,登录和注销是通过管理 cookie 来完成的。
当我们告诉 SignInManager 登录用户时,管理器会向用户的浏览器发出一个 cookie,浏览器将在每个后续请求中发送此 cookie。它可以帮助我们识别该用户。
身份中间件
这是框架的第二部分 -
读取 SignInManager 发送的 cookie 并识别用户,这发生在框架的最后一部分,即身份中间件中。
我们需要将此中间件配置到我们的应用程序管道中,以处理 SignInManager 设置的 cookie。我们还将在接下来的几章中看到这个中间件的一些其他功能。