public static AuthorizationPolicyBuilder RequireClaimExtended(this AuthorizationPolicyBuilder builder, IServiceCollection services, SecurityOptions security, string claimType, params string[] allowedValues) { var requireClaim = new ClaimsAuthorizationRequirementExtended(security, claimType, allowedValues); services.AddSingleton <IAuthorizationHandler>(requireClaim); builder.AddRequirements(requireClaim); return(builder); }
public static AuthorizationPolicyBuilder RequireClaimExtended(this AuthorizationPolicyBuilder builder, IServiceCollection services, string claimType, params string[] allowedValues) { var serviceProvider = services.BuildServiceProvider(); var security = serviceProvider.GetRequiredService <IValidOptionsMonitor <SecurityOptions> >(); var superUser = serviceProvider.GetRequiredService <IValidOptionsMonitor <SuperUserOptions> >(); var requireClaim = new ClaimsAuthorizationRequirementExtended(security, superUser, claimType, allowedValues); services.AddSingleton <IAuthorizationHandler>(requireClaim); builder.AddRequirements(requireClaim); return(builder); }