AuthorizationHandlerContext返回用户为null
创始人
2024-09-22 15:30:27
0

可能的解决方案如下:

  1. 确保已经成功验证并设置了用户

使用以下代码,确保已经成功验证并设置了用户:

var user = await _userManager.GetUserAsync(context.User);

if (user == null) { context.Fail("Unauthorized"); return; }

  1. 确保HttpContext.User已设置

如果HttpContext.User未设置,则AuthorizationHandlerContext将无法返回用户。因此,请确保HttpContext.User已设置:

var user = await _userManager.GetUserAsync(context.User);

if (user == null) { context.Fail("Unauthorized"); return; }

var claimsPrincipal = new ClaimsPrincipal(new ClaimsIdentity(new[] { new Claim(ClaimsIdentity.DefaultNameClaimType, user.Email) })); context.HttpContext.User = claimsPrincipal;

  1. 确保策略正在使用正确的AuthenticationScheme

如果当前用户不是使用策略所需的AuthenticationScheme进行验证的,则AuthorizationHandlerContext将返回null。因此,请确保策略正在使用正确的AuthenticationScheme:

services.AddAuthorization(options => { options.DefaultPolicy = new AuthorizationPolicyBuilder() .RequireAuthenticatedUser() .AddAuthenticationSchemes(JwtBearerDefaults.AuthenticationScheme) // 此处添加所需的AuthenticationScheme .Build(); });

  1. 检查自定义策略

如果您正在使用自定义策略,请确保所有的要求都被正确地满足。在以下代码示例中,我们创建了一个需要“admin”角色的策略。请验证用户是否具有“admin”角色:

services.AddAuthorization(options => { options.AddPolicy("RequireAdmin", policy => { policy.RequireRole("admin"); }); });

var user = await _userManager.GetUserAsync(context.User);

if (user == null) { context.Fail("Unauthorized"); return; }

if (!await _userManager.IsInRoleAsync(user, "admin")) { context.Fail("Unauthorized"); return; }

相关内容

热门资讯

9分钟讲解!雀友会广东潮汕bu... 9分钟讲解!雀友会广东潮汕bus(辅助挂)一直真的是有挂(wpk教程开挂辅助插件)>>您好:软件加1...
5分钟辅助!新玄龙辅助(辅助挂... 5分钟辅助!新玄龙辅助(辅助挂)原来确实有挂(必备教程开挂辅助平台)新玄龙辅助ai黑科技系统规律教程...
第三分钟辅助!有没有哈糖大菠萝... 第三分钟辅助!有没有哈糖大菠萝攻略推荐(辅助挂)一贯确实有挂(德州论坛开挂辅助平台);亲,有没有哈糖...
1分钟详情!广东老友辅助(辅助... 1分钟详情!广东老友辅助(辅助挂)一贯确实有挂(AI教程开挂辅助下载)【无需打开直接搜索加薇1367...
第二分钟明白!海盗来了大白辅助... 第二分钟明白!海盗来了大白辅助(辅助挂)原来确实有挂(详细教程开挂辅助安装);亲,海盗来了大白辅助这...
6分钟讲解!战皇大厅辅助那个可... 6分钟讲解!战皇大厅辅助那个可靠(辅助挂)一直真的有挂(透视教程开挂辅助脚本)《详细加薇136704...
一分钟讲究!欢欢辅助软件怎么样... 一分钟讲究!欢欢辅助软件怎么样(辅助挂)果然是有挂的(黑科技教程开挂辅助软件)【无需打开直接搜索加薇...
8分钟辅助!wepokerpl... 8分钟辅助!wepokerplus辅助辅助(辅助挂)果然确实有挂(详细教程开挂辅助平台) >>您好:...
9分钟讲究!大咖娱乐挂脚本(辅... 9分钟讲究!大咖娱乐挂脚本(辅助挂)果然真的有挂(曝光教程开挂辅助工具)您好:大咖娱乐挂脚本这款游戏...
第2分钟辅助!小闲川南辅助(辅... 第2分钟辅助!小闲川南辅助(辅助挂)原来确实有挂(扑克教程!开挂辅助下载);无需打开直接搜索薇:13...