ASP.NET Core允许创建自定义授权策略,以便更好地控制用户访问应用程序中的资源。下面是在ASP.NET Core中为用户自定义授权策略的基本步骤。
public class CustomPolicyRequirement : IAuthorizationRequirement { public CustomPolicyRequirement() { } }
public class CustomPolicyHandler : AuthorizationHandler
//如果当前用户属于管理员角色,则满足策略
if (user.IsInRole("Admin"))
{
context.Succeed(requirement);
}
return Task.CompletedTask;
} }
public void ConfigureServices(IServiceCollection services) { ...
//注册授权策略 services.AddAuthorization(options => { options.AddPolicy("CustomPolicy", policy => { policy.Requirements.Add(new CustomPolicyRequirement()); }); });
... }
[Authorize(Policy = "CustomPolicy")] public IActionResult CustomPolicyAuthorizedMethod() { return Ok("User is authorized to access this resource."); }
就这样,我们创建了一个自定义授权策略