【.net framework 源码分析之】Identity用户管理API(基础)

6 篇文章 0 订阅

目录

登录管理器

登录管理器SignInManager

登录管理器类ApplicationSignInManager

SignInManager类,>

声明ClaimsIdentity

方法PasswordSignInAsync

用户管理器--注册、忘记密码、重置密码、用户的增删改查..会用到

用户管理器UserManager

用户管理器类 ApplicationUserManager

​​​​​​​ApplicationUserManager 中Create方法注册的流程

调用Create方法配置用户管理器和登录管理器

​​​​​​​​​​​​​​获取用户管理和登录管理器

​​​​​​​补充知识点:查看源码


 

Identity提供了实现各种登录注册等身份认证的功能

登录管理器

登录管理器SignInManager

AccountController.cs

登录管理器SignInManager,我们看看这个管理器是怎么来的。

AccountController.cs

其中HttpContext.GetOwinContext().Get<>()中,通过GetOwinContext上下文Get方法获取到登录管理器ApplicationSignInManager,获取到以后,通过set方法把值存在_signInManager里面了

登录管理器类ApplicationSignInManager

F12 ApplicationSignInManager ,进入ApplicationSignInManager管理器类

identityConfig.cs

在ApplicationSignInManager 类的构造方法中,可以看到是传递了用户管理器ApplicationUserManager 和授权管理器IAuthenticationManager

ApplicationSignInManager 的构造方法,继承了ApplicationSignInManager 父类SignInManager的构造方法

 

SignInManager<TUser, TKey>

 

上图可以看到,ApplicationSignInManager  是继承了 SignInManager<TUser, TKey> 的。

我们看看SignInManager<TUser, TKey>类

SignInManager[从元数据]

声明ClaimsIdentity

上图中的CreateUserIdentity 前面有一个声明ClaimsIdentity

声明的作用:

如下,假如说我们不想显示班级管理,我们可以通过声明的方式,不显示声明管理。(听老师的意思应该类似与权限管理之类的)

方法PasswordSignInAsync

登录管理器中,var result = await SignInManager.PasswordSignInAsync(model.Email, model.Password, model.RememberMe, shouldLockout: false);

其中PasswordSignInAsync正是SignManager类的方法,他是通过邮箱、密码进行登录

 

 

 

​​​​​​​用户管理器--注册、忘记密码、重置密码、用户的增删改查..会用到

​​​​​​​用户管理器UserManager

AccountController.cs

 

UserManager是怎么来的呢,还是这个文件,f12

​​​​​​​用户管理器类 ApplicationUserManager

identityConfig.cs

 

​​​​​​​ApplicationUserManager 中Create方法注册的流程

identityConfig.cs

ApplicationUserManager->UserStore->IOwinContext->ApplicationDbContecxt

调用Create方法配置用户管理器和登录管理器

通过Owin上下文来配置用户管理器和登录管理器

那么这里实际上就是上一节讲的内容,ApplicationUserManager和ApplicationSignInManager实际上就是上面identityConfig.cs 里的ApplicationUserManager登录管理器类和ApplicationSignInManager用户管理器类。

 

​​​​​​​​​​​​​​获取用户管理和登录管理器

这个时候回头看本章第一节AccountController.cs,就会发现,在这里当我们需要用到这两个管理器的时候,会通过Owin上下文来获取。

UserManager用户管理器属性

SignInManager登录管理器属性

​​​​​​​补充知识点:查看源码

  1. 通过工具-ILSpy查看源码
  2. 工具-选项-文本编辑器-c#-高级-支持导航到反编译源

 

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值