允许多个用户类型的简单授权问题
Simple authorization question to allow more than one user type
我在 api 中有 3 个角色:
- 用户
- 管理员
- 客人
在测试我的前端时,我主要使用管理员角色,但现在有些方法我想使用两个角色。
//GET: api/Job
[Authorize(Roles = Role.Admin)]
[Authorize(Roles = Role.User)]
[HttpGet]
public async Task<ActionResult<IEnumerable<Job>>> GetJob()
{
... code
}
这样写不会产生想要的结果:管理员和用户都应该可以访问该方法,而不是你需要既是管理员又是用户,所以我的前端无论如何都会自动注销你您以谁身份登录。如何重写授权以允许这两个角色?
来自文档:
/// <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)]
我在 api 中有 3 个角色:
- 用户
- 管理员
- 客人
在测试我的前端时,我主要使用管理员角色,但现在有些方法我想使用两个角色。
//GET: api/Job
[Authorize(Roles = Role.Admin)]
[Authorize(Roles = Role.User)]
[HttpGet]
public async Task<ActionResult<IEnumerable<Job>>> GetJob()
{
... code
}
这样写不会产生想要的结果:管理员和用户都应该可以访问该方法,而不是你需要既是管理员又是用户,所以我的前端无论如何都会自动注销你您以谁身份登录。如何重写授权以允许这两个角色?
来自文档:
/// <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)]