How to access current HttpContext in ASP.NET Core 2 Custom Policy-Based Authorization with AuthorizationHandlerContext

前端 未结 3 1378
忘了有多久
忘了有多久 2020-12-28 16:46

How can I access current HttpContext to check for route and parameters inside AuthorizationHandlerContext of Custom Policy-Based Authorization inside ASP.NET Core 2?

3条回答
  •  死守一世寂寞
    2020-12-28 17:34

    You can inject an IHttpContextAccessor into your AuthorizationHandlers constructor.

    e.g.

    public class MyAuthorizationHandler : AuthorizationHandler
    {
        private IHttpContextAccessor _contextAccessor;
    
        public MyAuthorizationHandler (IHttpContextAccessor contextAccessor)
        {
            _contextAccessor = contextAccessor;
        }
    
        protected override Task HandleRequirementAsync(AuthorizationHandlerContext context,
            MinimumPermissionLevelRequirement requirement) {
    
            var httpContext = _contextAccessor.HttpContext;
            // do things
        }
    }
    

提交回复
热议问题