允许多个用户类型的简单授权问题

Posted

技术标签:

【中文标题】允许多个用户类型的简单授权问题【英文标题】:Simple authorization question to allow more than one user type 【发布时间】:2021-07-17 10:33:27 【问题描述】:

我的 api 中有 3 个角色:

    用户 管理员 客人

在测试我的前端时,我主要使用管理员角色,但现在有一些方法我想使用两个角色。

//GET: api/Job
[Authorize(Roles = Role.Admin)]
[Authorize(Roles = Role.User)]
[HttpGet]
public async Task<ActionResult<IEnumerable<Job>>> GetJob()

    ... code

这样写不会产生想要的结果:管理员和用户都应该可以访问该方法,相反,您需要同时是管理员和用户,所以无论您是谁,我的前端都会自动将您注销登录为。如何重写 Authorize 以允许两个角色?

【问题讨论】:

***.com/questions/700166/… 这能回答你的问题吗? Allow multiple roles to access controller action 【参考方案1】:

来自文档:

/// <summary>
/// Gets or sets a comma delimited list of roles that are allowed to access the resource.
/// </summary>
public string Roles  get; set; 

这意味着您需要使用逗号分隔的角色列表,而不是多个 AuthorizeAttribute。

[Authorize(Roles = Role.Admin + "," + Role.User)]

【讨论】:

以上是关于允许多个用户类型的简单授权问题的主要内容,如果未能解决你的问题,请参考以下文章

如果用户不允许某些条目类型,HealthKit 无法编写具有多个条目的 HKSample

SOA:Rails 多个客户端的用户身份验证和 api 授权

方法上的多个授权属性

多个 HTTP 授权标头?

如何将 Amplify 配置为使用多个 AppSync 端点?

django认证系统