How to create user authorization in ASP.NET Core (ASP.NET 5)

I would like to have a custom implementation of the [Authorize] attribute in the controls.

This is what I did.

  • StartupClass in ConfigureServices

    services.AddAuthorization(options => { options.AddPolicy("Authorize", policy => { policy.AddRequirements(new MyRequirement()); }); }); 
  • Myrequirement

     public class MyRequirement : AuthorizationHandler<MyRequirement>, IAuthorizationRequirement { protected override void Handle(AuthorizationContext context, MyRequirement requirement) { //some work //if shloud be authorized context.Succeed(requirement); } } 
  • Testcontroller

     [Authorize("Authorize")] [Route("api/[controller]")] public class TestController : Controller { ... } 

What am I missing? MyRequirement authorizationhader is never called. Thanks.

+7
asp.net-mvc asp.net-core asp.net-core-mvc
source share
1 answer

I believe you are missing this part:

 services.AddSingleton<IAuthorizationHandler, MyRequirementHandler>(); 

A source

+6
source share

All Articles