如果我的用户与我的 AspNetCore webapp 上的所需角色相关联,为啥我会被禁止?
Posted
技术标签:
【中文标题】如果我的用户与我的 AspNetCore webapp 上的所需角色相关联,为啥我会被禁止?【英文标题】:Why am I forbidden if my User is associated to the required Role on my AspNetCore webapp?如果我的用户与我的 AspNetCore webapp 上的所需角色相关联,为什么我会被禁止? 【发布时间】:2019-05-02 22:05:13 【问题描述】:我正在尝试将角色添加到身份验证已经正常工作的 AspNet Core WebApp。
这是我在启动时所做的:
services
.AddIdentity<User, Role>()
.AddEntityFrameworkStores<IdentityContext>()
.AddDefaultTokenProviders()
.AddUserStore<UserStore<User, Role, IdentityContext, Guid>>()
.AddRoleStore<RoleStore<Role, IdentityContext, Guid>>();
我为我的User
提供了之前创建的角色“Admin”和“SuperAdmin”,并为给定的控制器操作添加了以下过滤器:
[Authorize(Roles = "Admin")]
但是,当我尝试访问该端点时,我得到了 403 禁止。
我不明白我错过了什么。
【问题讨论】:
拥有“超级管理员”角色的用户怎么样? 他们呢?对不起,我不明白这个问题。 配置身份不会自动使身份验证工作。您使用什么身份验证? 身份验证有效。我唯一添加的是授权属性中的角色。 【参考方案1】:我发现了一个与我类似的问题。 该人回答了他自己的问题,但没有将其标记为答案。
基本上,我似乎必须在我生成的 JWT 中添加角色作为声明。
https://***.com/a/50444865/1826096
【讨论】:
以上是关于如果我的用户与我的 AspNetCore webapp 上的所需角色相关联,为啥我会被禁止?的主要内容,如果未能解决你的问题,请参考以下文章
控制器未加载.AspNetCore.Identity.Application用户cookie
如何使用 AutoLayout 使我的 UIImage 的高度与我的 UILabel 的固有高度相同?