我想在控件中自定义实现[Authorize]属性。
这就是我所做的。
ConfigureServices中的
services.AddAuthorization(options =>
{
options.AddPolicy("Authorize", policy =>
{
policy.AddRequirements(new MyRequirement());
});
});
public class MyRequirement : AuthorizationHandler<MyRequirement>, IAuthorizationRequirement
{
protected override void Handle(AuthorizationContext context, MyRequirement requirement)
{
//some work
//if shloud be authorized
context.Succeed(requirement);
}
}
[Authorize("Authorize")]
[Route("api/[controller]")]
public class TestController : Controller
{
...
}
我想念的是什么?永远不会调用MyRequirementauthorizationhader。
谢谢你。
最佳答案
我相信您缺少这一部分:
services.AddSingleton<IAuthorizationHandler, MyRequirementHandler>();
Source
关于asp.net - 如何在ASP.NET Core(ASP.NET 5)中创建自定义授权,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/35732769/