【发布时间】:2021-02-04 05:07:23
【问题描述】:
我刚刚在我的 asp.net Web 核心应用程序上完成了我的日志记录/注销代码,我遇到了一个问题,即在尝试访问需要特定角色的方法时,服务器总是返回错误 403 禁止。可能是什么问题?我检查了数据库,角色分配工作正常。 这是我为测试编写的方法的示例:
[Authorize(Roles = "SuperAdmin")]
[HttpGet]
[Route("Test")]
public string Test()
{
return "role checking working";
}
我的实际用户确实具有“SuperAdmin”角色,但我仍然从服务器获得禁止,顺便说一句,我确保将令牌与请求一起发送。当我尝试[Authorize] 时,检查工作正常,因为我只在登录时访问该方法。
会不会是生成令牌的代码?因为我不知道如何做那部分,我只是盲目地跟着教程
编辑:
这是我创建令牌时的claims 变量
var claims = new[]{
new Claim(JwtRegisteredClaimNames.Sub, user.UserName),
new Claim(JwtRegisteredClaimNames.Jti, Guid.NewGuid().ToString())
};
我应该添加什么?
【问题讨论】:
-
您的令牌必须有一个
ClaimsIdentity,用户角色为new Claim(ClaimTypes.Role, role)。 -
@HMZ 感谢您的回复,我尝试添加您的代码但无法编译,我编辑了帖子以显示我的实际声明,如何添加角色?
-
感谢您的回复,我按照您的指示搜索后找到了解决方案
标签: asp.net asp.net-core authentication