【紧急】使用 ClaimsIdentity 进行存储用户信息,获取到的对象为空

wilson2017 2020-03-18 05:01:16
【紧急】使用 ClaimsIdentity 进行存储用户信息,获取到的对象为空
代码如下: 登录时把用户的 token 和帐号存入
 public void SignIn(string token, string name)
{
ClaimsIdentity claimsIdentity = new ClaimsIdentity(CookieUsrAuthInfo.AuthenticationScheme);
claimsIdentity.AddClaim(new Claim(ClaimTypes.NameIdentifier, token));
claimsIdentity.AddClaim(new Claim(ClaimTypes.Name, name));
ClaimsPrincipal claimsPrincipal = new ClaimsPrincipal(claimsIdentity);
_httpContextAccessor.HttpContext.SignInAsync(CookieUsrAuthInfo.AuthenticationScheme, claimsPrincipal);

}


这个时候通过 GetCurrentUser() 方法来获取 Principal 得值
public SysUserAccount GetCurrentUser()
{
var result = _httpContextAccessor.HttpContext.AuthenticateAsync(CookieUsrAuthInfo.AuthenticationScheme).Result;
var token = result.Principal.FindFirstValue(ClaimTypes.Sid);
return _sysUserAccountService.GetLogged(token);
}

Action 的获取:
var getUsr = _userAuthService.GetCurrentUser();  


跑代码进行调试的时候发现存入的时候没报错,但进行 result.Principal.FindFirstValue(ClaimTypes.Sid); 获取时,Principal 为空
Startup.cs 配置都有配置了,百思不得其解
Startup.cs 配置:



...全文
1424 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
hljlhf 2020-08-01
  • 打赏
  • 举报
回复
保存时写到ClaimTypes.NameIdentifier这里了, 读取时从ClaimTypes.Sid读取,所以会为null。 保持前后一致即可解决问题:)
hljlhf 2020-08-01
  • 打赏
  • 举报
回复
请问楼主,问题解决了吗,我也遇到同样的问题了
wilson2017 2020-03-18
  • 打赏
  • 举报
回复
补充下报错信息
1,项目功能:     系统总体上划分为五个模块:接处警模块、预案管理模块、事件处置模块、资源管理模块、案例管理模块。具体业务流程如下:(1)根据突发疾控事件的级别和紧急情况,级别较低的突发疾控事件由接处警模块处置,级别较高或较为紧急的事件由事件处置模块处置。(2)当突发疾控事件发生时,依据接警员提交的事件信息调用相应的预案,并完善相应的信息,包括资源的配置和指定相关责任单位。(3)接受到任务的相关责任单位根据任务内容和实际情况进行突发疾控事件的处置。(4)任务的相关责任单位在处置过程中将事件处置的进展情况及时的进行反馈,跟踪事件处置的情况。(5)事件处置相关单位根据事件反馈情况合理调整任务,保证事件处置的准确性和效率。(6)当突发疾控事件得到控制或者解除紧急状态后,可以结案,事件处置的所有工作结束后,进入案例管理模块。(7)案例管理对突发疾控事件应急管理系统处置的所有重大或特别重大的事件的处置过程以及基本信息进行记录,便于统计和查询。(8)领导和专家可以对案例和事件处置报告进行评估和总结,以便完善预案模板的管理,提高处置相似或者相同突发疾控事件的效率。     适合做毕业设计参考项目。2,涉及技术:SSM框架,Tomcat3,开发环境:IDEA,MySQL数据库4,讲解方式:从环境安装,项目搭建,以及项目介绍等进行讲解5,包含资料:项目源码(含数据库文件),环境安装包,项目文档。

110,537

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧