在身份认证后建立用户对象ICurrentUser
app.UseAuthentication();
这个中间件添加后,他会为HttpContext.User设置一个ClaimsPrincipal对象。里面有身份认证token里面携带的信息。
其访问方式如下
HttpContext.User.FindFirstValue("自定义字段")
我们可以创建一个服务,方便在应用中使用用户信息。
因为在服务中拿不到HttpContext,所以只能通过IHttpContextAccessor去拿HttpContext
HttpContextAccessor.HttpContext
但是IHttpContextAccessor也需要先注入到容器中,服务才能使用
builder.Services.AddHttpContextAccessor();
完成IHttpContextAccessor注入后,就可以创建一个用户信息服务
1 public interface ICurrentUser
2 {
3 string depart { get; }
4 string 自定义字段 { get; }
5 string 自定义字段2 { get; }
6 }
7
8 public class CurrentUser : ICurrentUser
9 {
10 //服务中拿不到HttpContext,只能通过IHttpContextAccessor去拿到服务中拿不到HTTPContext
11 public CurrentUser(IHttpContextAccessor httpContextAccessor)
12 {
13 HttpContextAccessor = httpContextAccessor;
14 }
15
16 private IHttpContextAccessor HttpContextAccessor { get; }
17 public string depart => HttpContextAccessor.HttpContext.User.FindFirstValue("testdepart");//=>只读初始化器语法糖
18 public string 自定义字段 => HttpContextAccessor.HttpContext.User.FindFirstValue("自定义字段");
19 public string 自定义字段2 => HttpContextAccessor.HttpContext.User.FindFirstValue("自定义字段2");
20 }
然后在容器中注入这个服务
builder.Services.AddScoped<ICurrentUser,CurrentUser>();
在控制器或其他服务中使用就通过构造注入就行
public WeatherForecastController(ICurrentUser currentUser)
{
CurrentUser = currentUser;
}
我们在一个接口中返回这个对象
[HttpGet]
public object GetCurrent()
{
return CurrentUser;
}
结果如下

在身份认证后建立用户对象ICurrentUser的更多相关文章
- "用户增长"--快速身份认证实现用户增长的技术和产品方案
"用户增长"--快速身份认证实现用户增长的技术和产品方案 1 引言 作为一个互联网产品,用户量的增长是一个非常重要的衡量指标. 这是一个集合了销售,市场,运营,技术的综合能力. ...
- (诊断)解决GitHub使用双因子身份认证“Two-Factor Athentication”后无法git push 代码的“fatal: Authentication failed for ...”错误
在GitHub上采取双因子身份认证后,在git push 的时候将会要求填写用户的用户名和密码,用户名就是用户在GitHub上申请的用户名,但是密码不是普通登录GitHub的密码. 一旦采取双因子身份 ...
- 无状态http协议上用户的身份认证
1.注册时可以使用手机短信验证码进行身份认证 2.用户每次请求不能每次都发送验证码,这时需要服务器给客户端颁发一个身份凭证(一般为一个唯一的随机数),用户每次请求时都携带身份凭证, 服务器会记录该身份 ...
- Asp-Net-Core学习笔记:身份认证入门
前言 过年前我又来更新了~ 我就说了最近不是在偷懒吧,其实这段时间还是有积累一些东西的,不过还没去整理-- 所以只能发以前没写完的一些笔记出来 就当做是温习一下啦 PS:之前说的红包封面我还没搞,得抓 ...
- C#进阶系列——WebApi 身份认证解决方案:Basic基础认证
前言:最近,讨论到数据库安全的问题,于是就引出了WebApi服务没有加任何验证的问题.也就是说,任何人只要知道了接口的url,都能够模拟http请求去访问我们的服务接口,从而去增删改查数据库,这后果想 ...
- WebApi身份认证解决方案:Basic基础认证
前言:最近,讨论到数据库安全的问题,于是就引出了WebApi服务没有加任何验证的问题.也就是说,任何人只要知道了接口的url,都能够模拟http请求去访问我们的服务接口,从而去增删改查数据库,这后果想 ...
- C#进阶系列——WebApi身份认证解决方案:Basic基础认证 (转)
http://www.cnblogs.com/landeanfen/p/5287064.html 前言:最近,讨论到数据库安全的问题,于是就引出了WebApi服务没有加任何验证的问题.也就是说,任何人 ...
- Apache shiro集群实现 (三)shiro身份认证(Shiro Authentication)
Apache shiro集群实现 (一) shiro入门介绍 Apache shiro集群实现 (二) shiro 的INI配置 Apache shiro集群实现 (三)shiro身份认证(Shiro ...
- WebApi 身份认证解决方案:Basic基础认证
前言:最近,讨论到数据库安全的问题,于是就引出了WebApi服务没有加任何验证的问题.也就是说,任何人只要知道了接口的url,都能够模拟http请求去访问我们的服务接口,从而去增删改查数据库,这后果想 ...
- (转)C# WebApi 身份认证解决方案:Basic基础认证
原文地址:http://www.cnblogs.com/landeanfen/p/5287064.html 阅读目录 一.为什么需要身份认证 二.Basic基础认证的原理解析 1.常见的认证方式 2. ...
随机推荐
- C++判断操作系统位数
//判断当前系统是否为64位 BOOL Is64BitSystem() { #ifdef _WIN64 return true; #elif _WIN32 HMODULE hModule = Load ...
- Seaborn结构化图形绘制(FacetGrid)
结构化图形绘制(FacetGrid) 可实现多行多列个性化绘制图形. sns.FacetGrid( data, row=None, col=None, hue=None, col_wrap=None, ...
- HarmonyOS位置服务开发指南
位置服务开发概述 移动终端设备已经深入人们日常生活的方方面面,如查看所在城市的天气.新闻轶事.出行打车.旅行导航.运动记录.这些习以为常的活动,都离不开定位用户终端设备的位置. 当用户处于这些丰富 ...
- k8s之operator
背景 数字经济的兴起推动了云计算.物联网.大数据行业的快速蓬勃发展,对数据中心提出了更高的要求,同时,用户对于数据库运维自动化的需求越来越高,数据库即服务的需求越来越强烈. 随着k8s的普及以及云原生 ...
- Mysql之主从异步
数据库创建完后主从数据库数据保持同步 主数据库 mysql> SHOW MASTER STATUS; +------------------+----------+--------------+ ...
- nginx重新整理——————nginx 的网络模型[九]
前言 简单介绍一下nginx的网络模型. 正文 网络拓扑图: 数据流: 网络传输大概是这样传输的. nginx 事件循环: 事件处理过程: 上面两张图什么意思呢? 其实就是说,nginx 是通过事件驱 ...
- js 是单线程吗?
前言 在html5中,js中允许操作多个线程执行,但是不能操作dom元素,这是一个痛点. 但是在mvvm依然存在很大的作用力,因为我们只需要操作数据,在操作数据的时候委托机制在主线程中就实现了对dom ...
- Effective Python:第2条 遵循PEP 8风格指南
PEP8文档:https://peps.python.org/pep-0008/ 与空白有关的建议: 用空格(space)表示缩进,而不要用制表符(tab). 和语法相关的每一层缩进都用4个空格表示. ...
- K8s集群nginx-ingress监控告警最佳实践
本文分享自华为云社区<K8s集群nginx-ingress监控告警最佳实践>,作者:可以交个朋友. 一 背景 nginx-ingress作为K8s集群中的关键组成部分.主要负责k8s集群中 ...
- IDEA操作MyBatis实现数据库增删改查
"感谢您阅读本篇博客!如果您觉得本文对您有所帮助或启发,请不吝点赞和分享给更多的朋友.您的支持是我持续创作的动力,也欢迎留言交流,让我们一起探讨技术,共同成长!谢谢!" 前置环境 ...