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 将与数据库对话。Identity 框架支持实体框架和所有可以与实体框架一起使用的数据库。
-
但是您可以实现自己的 UserStore 来处理任何数据源。
-
为了正确使用实体框架,我们的 User 类还将插入 IdentityDb 类。
-
这是一个使用实体框架 DBContext 来完成实际数据库工作的类。
-
我们需要通过让我们现有的 DataContext 类继承自 IdentityDb 而不是实体框架的 DBContext 来将此 IdentityDb 包含到我们的应用程序中。
-
IdentityDb 和 UserStore 共同存储用户信息并验证用户密码,即数据库中的散列密码。
我们需要了解 ASP.NET Core Identity Framework 的两个部分
登录管理器
这是身份框架的两部分之一 –
-
顾名思义,一旦我们验证了密码,SignInManager就可以让用户登录。
-
我们也可以使用这个管理器来注销用户。
-
使用表单身份验证,登录和注销是通过管理 cookie 来完成的。
-
当我们告诉 SignInManager 让用户登录时,管理器会向用户的浏览器发出一个 cookie,浏览器将在每个后续请求中发送这个 cookie。它可以帮助我们识别该用户。
身份中间件
这是框架的第二部分 –
-
读取 SignInManager 发送的 cookie 并识别用户,这发生在框架的最后一部分,即身份中间件中。
-
我们需要将此中间件配置到我们的应用程序管道中,以处理由 SignInManager 设置的 cookie。我们还将在接下来的几章中看到这个中间件的一些其他特性。