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



我的api中有三个角色:

  1. 用户
  2. 管理员
  3. 客人

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

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

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

来自文档:

/// <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)]

最新更新