授权处理程序必须注册该服务集合在配置过程中(使用依赖注入)。
假设你有你想要的授权处理器内部评估规则库和资源库是服务集合中注册。授权将解决,并注入到这一点你的构造。
例如,如果你想使用ASP.NET的日志基础设施你会注入ILoggerFactory
到你的处理程序。这样的处理可能是:
公共 类 LoggingAuthorizationHandler : AuthorizationHandler < MyRequirement > { ILogger _logger ; 公共 LoggingAuthorizationHandler (ILoggerFactory 的LoggerFactory ) { _logger = 的LoggerFactory 。CreateLogger (此。的GetType ()。全名); } 保护 覆盖 任务 HandleRequirementAsync (AuthorizationHandlerContext 背景下, MyRequirement 要求) { _logger 。LogInformation (“内部我的处理程序” ); //检查要求满足 返回 任务。CompletedTask ; } }
你会注册的处理程序services.AddSingleton()
:
服务。AddSingleton < IAuthorizationHandler , LoggingAuthorizationHandler >();
当你的应用程序启动和DI将注入注册的处理程序的实例将被创建ILoggerFactory
成你的构造。
注意
使用实体框架处理程序不应被注册为单身。
时间: 2024-11-07 21:02:24