ASP.NET Core - 身份概述

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

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

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

  • 该框架还支持双因素身份验证,第三方身份提供程序和其他功能.

  • 我们将专注于用户可以注册,登录和注销的场景.

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

Identity Overview

  • 我们可以在此课程中包含任意数量的其他属性来存储信息关于我们的用户.

  • 我们需要使用此User类并将其插入Identity框架提供的UserStore类中.

  • UserStore是我们的代码将用于创建用户和验证用户密码的类.

  • 最终,UserStore将与数据库交谈. Identity框架支持实体框架和可以与Entity Framework一起使用的所有数据库.

  • 但是您可以实现自己的UserStore来处理任何数据来源.

  • 为了正确使用Entity Framework,我们的User类也将插入IdentityDb类.

  • 这是一个使用Entity Framework DBContext来完成实际数据库工作的类.

  • 我们需要包含这个通过让我们现有的DataContext类继承IdentityDb而不是Entity Framework的DBContext,IdentityDb进入我们的应用程序.

  • IdentityDb和UserStore一起工作到存储用户信息并验证用户密码,数据库中的散列密码.

ASP.NET核心有两部分我们需要知道的身份框架

Core Identity Framework

SignInManager

这是Identity框架的两个部分之一 :

  • 顾名思义, SignInManager 可以在验证密码后登录用户.

  • 我们也可以使用此经理向用户签名.

  • 使用表单身份验证,签名in和注销是通过管理cookie来完成的.

  • 当我们告诉SignInManager签署用户时,经理会向用户的浏览器发出cookie ,浏览器将在每个后续请求中发送此cookie.它有助于我们识别该用户.

身份中间件

这是第二部分框架&减去;

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

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