ASP.NET Core - Identity 身份框架概述

在本章中,我们将简要讨论 ASP.NET Core Identity 框架。 ASP.NET Core 身份框架用于实现表单身份验证。 有许多选项可供选择来识别您的用户,包括 Windows 身份验证和所有第三方身份提供商,如谷歌、微软、Facebook 和 GitHub 等。

  • Identity 框架是我们将在 project.js 文件中添加到应用程序的另一个依赖项。

  • 此框架允许我们添加用户可以使用本地密码注册和登录的功能。

  • 该框架还支持双因素身份验证、第三方身份提供商等功能。

  • 我们将重点关注用户可以注册、登录和注销的场景。

为此,我们需要创建一个 User 实体,该类将从 Identity 框架中的基类继承,该基类为我们提供标准用户属性,如用户名和电子邮件地址。

Identity 身份框架概述
  • 我们可以在此类中包含任意数量的附加属性,以存储有关我们用户的信息。

  • 我们需要获取此 User 类并将其插入到 Identity 框架提供的 UserStore 类中。

  • UserStore 是我们的代码用来创建用户和验证用户密码的类。

  • 最终,UserStore 将与数据库对话。 身份框架支持实体框架和所有可以与实体框架一起工作的数据库。

  • 但是您可以实现自己的 UserStore 以使用任何数据源。

  • 为了正确使用实体框架,我们的用户类也将插入到 IdentityDb 类中。

  • 这是一个使用实体框架 DBContext 来完成实际数据库工作的类。

  • 我们需要通过让现有的 DataContext 类继承自 IdentityDb 而不是实体框架的 DBContext 来将此 IdentityDb 包含到我们的应用程序中。

  • IdentityDb 和 UserStore 协同工作以存储用户信息并验证用户密码,即数据库中的散列密码。

我们需要了解 ASP.NET Core Identity 框架的两个部分

Core Identity 身份框架

SignInManager

这是 Identity 身份框架的两个部分之一 −

  • 顾名思义,SignInManager 可以在我们验证密码后让用户登录。

  • 我们还可以使用此管理器将用户注销。

  • 使用表单身份验证时,登录和退出是通过管理 cookie 完成的。

  • 当我们告诉 SignInManager 让用户登录时,管理器会向用户的浏览器发送一个 cookie,浏览器将在每个后续请求中发送此 cookie。 它帮助我们识别该用户。


Identity 身份中间件

这是框架的第二部分 −

  • 读取 SignInManager 发送的 cookie 并识别用户,这发生在框架的最后一部分,Identity 身份中间件。

  • 我们需要将这个中间件配置到我们的应用程序管道中,以处理由 SignInManager 设置的 cookie。 在接下来的几章中,我们还将看到这个中间件的一些其他特性。