在 ASP.NET Core 中使用 Authorize 属性来控制访问 WebAPI 中的方法和动作。要使用 Roles 参数,必须将用户角色分配给用户。如果您无法使用 Roles 获取授权,请使用 Policy 参数并指定策略名称。
以下是代码示例:
services.AddAuthorization(options =>
{
options.AddPolicy("MyPolicy", policy =>
{
policy.RequireAuthenticatedUser();
policy.RequireRole("Admin");
});
});
这将允许仅具有“Admin”角色的用户访问 MyPolicy 策略。
[ApiController]
[Route("[controller]")]
public class MyController : ControllerBase
{
[HttpGet]
[Authorize(Policy = "MyPolicy")]
public IActionResult Get()
{
return Ok("Authorized");
}
}
现在,只有具有“Admin”角色的用户才能访问 Get 方法。
注意:为了使上面的示例正常工作,您需要在 UserManager 或 RoleManager 中设置角色。