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用户存储表,这篇我们将 ...
随机推荐
- CD Linux U盘启动办法
1.用ULtraISO打开cdlinux的ISO文件,用USB-HDD+写入到U盘上。 2.下载GRUB4DOS软件,复制grldr和menu.lst到U盘。 3.下载bootice软件,在U盘的分区 ...
- WIN32得到HWND
HWND hwndFound //= FindWindow(_T("RC352_Win32"),NULL); = GetConsoleWindow();
- [TypeStyle] Use TypeStyle keyframes to create CSS animations
We cover CSS keyframes and how to create them using TypeStyle. We then show how to use the keyframes ...
- php 复制粘贴覆盖文件
<?php /** * 操纵文件类 * * 例子: * FileUtil::createDir('a/1/2/3'); 测试建立文件夹 建一个a/1/2/3文件夹 * FileUtil::cre ...
- Java Queue的使用
Queue的成员函数 add 增加一个元索 如果队列已满,则抛出一个IIIegaISlabEepeplian异常 rem ...
- UVA 1564 - Widget Factory(高斯消元)
UVA 1564 - Widget Factory 题目链接 题意:n种零件, 给定m个制作时间.每段时间制作k个零件,每种零件有一个制作时间,每段时间用Mon到Sun表示,求每一个零件的制作时间.还 ...
- [Ramda] Curry and Uncurry Functions with Ramda
Most of the functions offered by the ramda library are curried by default. Functions you've created ...
- Fragment使用LocalBroadcastManager接收广播消息
这种方式不用在配置文件加东西 变量声明 LocalBroadcastManager broadcastManager; IntentFilter intentFilter; BroadcastRece ...
- 【u207】最小值
Time Limit: 1 second Memory Limit: 128 MB [问题描述] N个数排成一排,你可以任意选择连续的若干个数,算出它们的和.问该如何选择才能使得和的绝对值最小. 如: ...
- Redis Service
https://raw.githubusercontent.com/MSOpenTech/redis/3.0/Windows%20Service%20Documentation.md