ASP.NET Core Identity 框架 - ASP.NET Core 基础教程 - 简单教程,简单编程
原文:ASP.NET Core Identity 框架 - ASP.NET Core 基础教程 - 简单教程,简单编程
ASP.NET Core Identity 框架
前面我们使用了 N 多个章节,终于是把 ASP.NET Core MVC 经常使用的功能大略的过了一遍。其它的内容,要么更深入,要么更少使用,我们就不再继续了。本章节我们开始学习 ASP.NET Core 中另一个重要的框架:Identity 框架 ,也就是所谓的身份验证框架
ASP.NET Core Identity 框架用于实现表单身份验证, 有许多验证方式可供选择,包括 Windows 身份验证和所有第三方身份验证,如 Google,Microsoft,Facebook 和 GitHub 等
Identity 框架还支持双因素身份验证,也就是所谓的两步验证,当然也支持第三方身份提供商和其它功能
当然了,我们将重点介绍用户可以注册并登录和注销的场景,也就是说, 我们可以使用 Identity 框架 给我们的应用添加注册登陆功能,这样用户可以注册并使用本地密码登录
检查是否安装了 Identity 框架
ASP.NET Core 一般内置了 Identity 框架,我们可以展开依赖项 Microsoft.AspNetCore.App 包,一路查找名为 Microsoft.AspNetCore.Identity 的程序集

如果找到,则说明已经安装了

如果没有找到,请参考前面的章节安装 Microsoft.AspNetCore.Identity
Identity 框架注册与登录
为了使用 Identity 框架实现注册与登录,我们需要创建一个 User 实体,实体类将从 Identity 框架中的基类继承,该基类提供了标准用户属性,如用户名和电子邮件地址

可以给
User添加其它属性来保持我们想要的保存的用户信息然后,需要把这个
User类加入到 Identity 框架提供的 UserStore 类中最后,使用
UserStore与数据库进行交互, Identity 框架支持 EF 框架和可以与 EF 框架一起工作的所有数据库当然了,我们也可以自定义
UserStore来支持任何其它数据源
为了正确地使用 EF 框架,我们需要将 User 类插入到 IdentityDb 类,该类使用 EF 框架的 DBContext 完成实际数据库操作
当然了,使用 IdentityDb 类的方式是让现有的 DbContext 类从 IdentityDb 继承,而不是继承 EF 框架的 DBContext
IdentityDb 和 UserStore 类一起用于存储用户信息并验证用户密码
是不是很拗口,算了,以后再回来整理,有种说不清楚到不明白的感觉,但用起来却是非常的简单
Identity 框架最重要的两个组件
Identity 框架提供了很多组件,但我觉得最重要的莫过于两个:SignInManager 和 Identity 中间件

1. SignInManager ( 登录管理器 )
顾名思义,一旦密码验证通过,SignInManager 就允许用户登录
当然了,SignInManager 还可以用于登出一个用户
如果使用表单身份验证,那么登录和注销通过管理 cookie 来实现的。当我们告诉 SignInManager 允许某个用户登录时, SignInManager 会向用户的浏览器返回一个 cookie,浏览器接下来的每个后续请求中都会发送该 cookie,直到 cookie 过期,我们可以使用该 cookie 来识别用户
2. Identity 中间件
Identity 中间件读取 SignInManager发送的 cookie 并识别用户,一般情况下,Identity 中间件都是在排在所有其它中间件之后才运行的
要使用该中间件,我们需要将它配置到我们的应用程序管道中,才能处理 SignInManager 设置的 Cookie
ASP.NET Core Identity 框架 - ASP.NET Core 基础教程 - 简单教程,简单编程的更多相关文章
- ASP.NET Core Identity 配置 - ASP.NET Core 基础教程 - 简单教程,简单编程
原文:ASP.NET Core Identity 配置 - ASP.NET Core 基础教程 - 简单教程,简单编程 ASP.NET Core Identity 配置 上一章节我们简单介绍了下 Id ...
- ASP.NET Core 6框架揭秘实例演示[08]:配置的基本编程模式
.NET的配置支持多样化的数据源,我们可以采用内存的变量.环境变量.命令行参数.以及各种格式的配置文件作为配置的数据来源.在对配置系统进行系统介绍之前,我们通过几个简单的实例演示一下如何将具有不同来源 ...
- ASP.NET Core 6框架揭秘实例演示[13]:日志的基本编程模式[上篇]
<诊断跟踪的几种基本编程方式>介绍了四种常用的诊断日志框架.其实除了微软提供的这些日志框架,还有很多第三方日志框架可供我们选择,比如Log4Net.NLog和Serilog 等.虽然这些框 ...
- ASP.NET Core 6框架揭秘实例演示[05]:依赖注入基本编程模式
毫不夸张地说,整个ASP.NET Core就是建立在依赖注入框架之上的.ASP.NET Core应用在启动时构建管道所需的服务,以及管道处理请求使用到的服务,均来源于依赖注入容器.依赖注入容器不仅为A ...
- Net Core Identity 身份验证:注册、登录和注销 (简单示例)
一.前言 一般我们自己的系统都会用自己设置的一套身份验证授权的代码,这次用net core的identity来完成简单的注册.登录和注销. 二.数据库 首先就是创建上下文,我这里简单的建了Users和 ...
- Asp.Net Core Identity 隐私数据保护
前言 Asp.Net Core Identity 是 Asp.Net Core 的重要组成部分,他为 Asp.Net Core 甚至其他 .Net Core 应用程序提供了一个简单易用且易于扩展的基础 ...
- 从零搭建一个IdentityServer——集成Asp.net core Identity
前面的文章使用Asp.net core 5.0以及IdentityServer4搭建了一个基础的验证服务器,并实现了基于客户端证书的Oauth2.0授权流程,以及通过access token访问被保护 ...
- 如何基于asp.net core的Identity框架在mysql上作身份验证处理
首先了解这个概念,我一开始也是理解和掌握基本的概念,再去做程序的开发.Identity框架是微软自己提供,基于.net core平台,可拓展.轻量 级.面向多个数据库的身份验证框架.IdentityS ...
- ASP.NET Core Identity Hands On(2)——注册、登录、Claim
上一篇文章(ASP.NET Core Identity Hands On(1)--Identity 初次体验)中,我们初识了Identity,并且详细分析了AspNetUsers用户存储表,这篇我们将 ...
随机推荐
- 20、RTC驱动程序
drivers\rtc\rtc-s3c.c s3c_rtc_init platform_driver_register s3c_rtc_probe rtc_device_register(" ...
- Chromium网页URL载入过程分析
Chromium在Browser进程中为网页创建了一个Frame Tree之后,会将网页的URL发送给Render进程进行载入.Render进程接收到网页URL载入请求之后,会做一些必要的初始化工作, ...
- vim :g
https://stackoverflow.com/questions/1946738/vim-how-to-delete-every-second-row An elegant (and effic ...
- Cocos2d中的Menu使用
学习cocos2d-x中的菜单主要须要了解:菜单(CCMenu)和菜单项(CCMenuItem)以及CCMenuItem的详细子类. a. 以下来学习一下相关的类. 1. CCMenu 菜单,是CCL ...
- linux java配置环境变量
export JAVA_HOME=/alidata/server/java/jdk1.8.0_65export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME ...
- [Now] Configure secrets and environment variables with Zeit’s Now
Often your project will require some secret keys or tokens - for instance, API keys or database auth ...
- [Compose] 16. Apply multiple functors as arguments to a function (Applicatives)
We find a couple of DOM nodes that may or may not exist and run a calculation on the page height usi ...
- <LeetCode OJ> 62. / 63. Unique Paths(I / II)
62. Unique Paths My Submissions Question Total Accepted: 75227 Total Submissions: 214539 Difficulty: ...
- ChangeWindowMessageFilterEx 概述(用于取消低权限程序向高权限程序发送消息不成功的限制,分6个等级)
ChangeWindowMessageFilterEx 函数,为指定窗口修改用户界面特权隔离 (UIPI) 消息过滤器. 函数原型: BOOL WINAPI ChangeWindowMessageFi ...
- todo bitnami
https://bitnami.com/stack/dokuwiki https://bitnami.com/stack/jenkins/installer