在本章中,我们将简要讨论ASP.NET Core的身份验证框架。 ASP.NET Core身份框架用于实现表单身份验证。 有许多选项可供选择,以识别您的用户,包括Windows身份验证和所有第三方身份提供商,如Google,Microsoft,Facebook和GitHub等。
-
Identity框架是我们将在project.js文件中添加到我们的应用程序中的另一个依赖项。
-
此框架允许我们添加让用户可以注册和使用本地密码登录的功能。
-
该框架还支持双因素身份验证,第三方身份提供商和其他功能。
-
我们将关注用户可以注册和登录和注销的情况。
为此,我们需要创建一个User实体,并且该类将继承自Identity框架中的一个基类,并且基类为我们提供用户名和电子邮件地址等标准用户属性。
-
我们在这个类上可以包括尽可能多的额外的属性,我们想要在这个类上存储与我们的用户有关的信息。
-
我们需要获取这个User类并将其插入Identity框架提供的UserStore类。
-
UserStore是我们的代码将与之交谈以创建用户和验证用户密码的类。
-
最终,UserStore将与数据库通信。 Identity框架支持实体框架以及可以与实体框架一起使用的所有数据库。
-
但是你可以实现自己的UserStore来处理任何数据源。
-
为了正确地使用Entity Framework,我们的User类也将插入一个IdentityDb类。
-
这是一个使用实体框架DBContext做实际数据库工作的类。
-
我们需要将这个IdentityDb包含到我们的应用程序中,使我们现有的DataContext类继承自IdentityDb,而不是Entity Framework的DBContext。
-
正是IdentityDb和UserStore协同工作来存储用户信息和验证用户密码,数据库中的散列密码。
主要有两个ASP.NET Core身份框架,现一一介绍。
SignInManager
这是身份框架的两个部分之一 -
-
顾名思义,一旦我们验证了密码,SignInManager就可以登录用户。
-
我们也可以使用此管理员签署用户。
-
使用表单身份验证,登录和退出是通过管理cookie完成的。
-
当我们告诉SignInManager签署一个用户时,系统向用户的浏览器发出一个cookie,浏览器会在每个后续请求中发送这个cookie。 它可以帮助我们识别该用户。
Identity 中间件
这是框架的第二部分 -
读取由SignInManager发送的cookie并识别用户,这发生在框架的最后一个部分,即Identity Middleware。
我们需要将此中间件配置到我们的应用程序管道中,以处理由SignInManager设置的cookie。 我们还将在接下来的几章中看到这个中间件的一些其他功能。
本文标题: Asp.Net Core-身份验证
本文地址:http://www.yuanjiaocheng.net/ASPNET-CORE/core-identity.html