.net core 在代码中使用jwt token中的用户信息
1 | 参考:https: //www.it1352.com/2599186.html |
1. 声明Claim数组
Claim[] myClaims = new Claim[] { new Claim( "UserNo" , "1" ), //自定义 new Claim(ClaimTypes.Role, "User" ), //系统预设 }; |
2.取Claim值
1 2 3 4 5 6 | var Role = User.Claims.Where(x => x.Type == ClaimTypes.Role).FirstOrDefault()?.Value; var UserNo = User.Claims.FirstOrDefault(c => c.Type == "UserNo" ); var Email = User.FindFirst( "Email" )?.Value; var claimsIdentity = this .User.Identity as ClaimsIdentity; var Name = claimsIdentity.FindFirst(ClaimTypes.Name)?.Value; string Identifier = User.FindFirst(ClaimTypes.NameIdentifier)?.Value; |
C#类拓展方法
调用:
Test test = new Test(); test.Name = "hello" ; ApiExtension.POST(test, (p => { string json = p; })); |
对象装字典帮助类
/// <summary> /// 对象装字典帮助类 /// </summary> public static class ModelToDictionaryHelper { /// <summary> /// 第一种通过反射进行转换 /// </summary> /// <typeparam name="T">要转换的类型</typeparam> /// <param name="obj">对象</param> /// <returns></returns> public static Dictionary< string , string > ModelToDic<T>( this T obj) where T : class { Dictionary< string , string > map = new Dictionary< string , string >(); if (obj == null ) { return map; } Type t = obj.GetType(); PropertyInfo[] PropertyList = t.GetProperties(); foreach ( var item in PropertyList) { string name = item.Name; object value = item.GetValue(obj, null ); if (value != null ) { map.Add(name, value.ToString()); } else { map.Add(name, "" ); } } return map; } /// <summary> /// 借助JsonConvert快速实现转换 /// </summary> /// <typeparam name="T">要转换的类型</typeparam> /// <param name="obj">对象</param> /// <returns></returns> public static Dictionary< string , string > ModelToDic2<T>( this T obj) where T : class { Dictionary< string , string > map = new Dictionary< string , string >(); if (obj == null ) { return map; } var objstr = JsonConvert.SerializeObject(obj); //string(json) 转 Dictionary map = JsonConvert.DeserializeObject<Dictionary< string , string >>(objstr); return map; } } |
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?