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 框架 前面我们使用了 N 多个章节,终于是把 ASP.NET Core MVC 经常使用的功能大略的过了一遍。
+关注继续查看

原文: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 框架中的基类继承,该基类提供了标准用户属性,如用户名和电子邮件地址

  1. 可以给 User 添加其它属性来保持我们想要的保存的用户信息

  2. 然后,需要把这个 User 类加入到 Identity 框架提供的 UserStore 类中

  3. 最后,使用 UserStore 与数据库进行交互, Identity 框架支持 EF 框架和可以与 EF 框架一起工作的所有数据库

    当然了,我们也可以自定义 UserStore 来支持任何其它数据源

为了正确地使用 EF 框架,我们需要将 User 类插入到 IdentityDb 类,该类使用 EF 框架的 DBContext 完成实际数据库操作

当然了,使用 IdentityDb 类的方式是让现有的 DbContext 类从 IdentityDb 继承,而不是继承 EF 框架的 DBContext

IdentityDbUserStore 类一起用于存储用户信息并验证用户密码

是不是很拗口,算了,以后再回来整理,有种说不清楚到不明白的感觉,但用起来却是非常的简单

Identity 框架最重要的两个组件

Identity 框架提供了很多组件,但我觉得最重要的莫过于两个:SignInManager 和 Identity 中间件

1. SignInManager ( 登录管理器 )

顾名思义,一旦密码验证通过,SignInManager 就允许用户登录

当然了,SignInManager 还可以用于登出一个用户

如果使用表单身份验证,那么登录和注销通过管理 cookie 来实现的。当我们告诉 SignInManager 允许某个用户登录时, SignInManager 会向用户的浏览器返回一个 cookie,浏览器接下来的每个后续请求中都会发送该 cookie,直到 cookie 过期,我们可以使用该 cookie 来识别用户

2. Identity 中间件

Identity 中间件读取 SignInManager发送的 cookie 并识别用户,一般情况下,Identity 中间件都是在排在所有其它中间件之后才运行的

要使用该中间件,我们需要将它配置到我们的应用程序管道中,才能处理 SignInManager 设置的 Cookie

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
.net框架中计时器(Timer)的这些事
.net的基础库提供了4个类别的计时器,使用的时候经常搞混,为了更好的使用这几个计时器,把每个的情况整理如下: 类别 说明 使用场景 System.Threading.
720 0
未能解析目标框架“.NETFramework,Version=v4.0”的 mscorlib 错误的解决办法
VS2010有时候莫名出现下面问题: 未能解析目标框架“.NETFramework,Version=v4.0”的 mscorlib 错误 相关的工程出现这个问题,可能是使用同步盘同步的引起的。
2356 0
Windows Internet编程基础--WinInet
假如对 dwContext 参数使用了默认值,将不能区分指示 FTP 连接进度的 OnStatusCallback 调用和指示 HTTP 连接进度的调用。如果指定以后可在 OnStatusCallback 中测试的 dwContext ID,您将知道是哪个操作生成的回调
1047 0
Java编程基础阶段笔记 day 07 面向对象编程(上)
面向对象编程笔记Notes:面向对象三条学习主线、面向过程 VS 面向对象、类和对象、创建对象例子、面向对象的内存分析
583 0
高性能网络I/O框架-netmap源码分析(5)
高性能网络I/O框架-netmap源码分析(5) 作者:gfree.wind@gmail.com 博客:blog.focus-linux.net linuxfocus.blog.chinaunix.net 微博:weibo.com/glinuxer QQ技术群:4367710 今天继续前面的netmap_ioctl netmap_ioctl 上次分析完了NIOCGINFO和NIOCREGIF两个,剩下的比较简单了。
682 0
.NET数据库编程求索之路--10.使用EF实现(划分输入验证层)
10.使用EF实现(划分输入验证层) 注:使用partial类来实现输入验证逻辑的分层。   源码下载: /Files/SummerRain/NetDbDevRoad/a使用EF实现4划分输入验证层.
576 0
Java数据库编程--JDBC
一、定义 JDBC,Java DataBase Connectivity。 是Java运行平台核心类库中的一部分,提供了访问数据库的API,由一些Java类和接口组成。 在Java中可以使用JDBC实现对数据库中表记录的查询,修改,和删除等操作 JDBC技术在数据库开发中占有很重要的地位。
869 0
【转】BarTender与ASP.NET的集成小结(条码标签打印编程)
话说自从上次发了篇NHibernate的资料后,好久没有写东西了,半年来一直在忙一个项目,做完项目后,发现很多东西虽然当时做了,懂了,但是很快就会模糊了,于是又再想起总结的重要性~~没啥地方好放资料的,放在博客园也是一个不错的选择~~   本人也是新手,写的不好的地方,请多原谅。
1875 0
Json.Net系列教程 3.Json.Net序列化和反序列化设置
原文 Json.Net系列教程 3.Json.Net序列化和反序列化设置 上节补充 首先补充一点,Json.Net是支持序列化和反序列化DataTable,DataSet,Entity Framework和NHibernate的.
815 0
+关注
杰克.陈
一个安静的程序猿~
10427
文章
2
问答
文章排行榜
最热
最新
相关电子书
更多
《2021云上架构与运维峰会演讲合集》
立即下载
《零基础CSS入门教程》
立即下载
《零基础HTML入门教程》
立即下载