public static AuthorizationPolicyBuilder RequireRoleExtended(this AuthorizationPolicyBuilder builder, IServiceCollection services, SecurityOptions options, params string[] allowedRoles) { var requireRole = new RolesAuthorizationRequirementExtended(options, allowedRoles); services.AddSingleton <IAuthorizationHandler>(requireRole); builder.AddRequirements(requireRole); return(builder); }
public static AuthorizationPolicyBuilder RequireRoleExtended(this AuthorizationPolicyBuilder builder, IServiceCollection services, params string[] allowedRoles) { var serviceProvider = services.BuildServiceProvider(); var monitor = serviceProvider.GetRequiredService <IValidOptionsMonitor <SecurityOptions> >(); var superUser = serviceProvider.GetRequiredService <IValidOptionsMonitor <SuperUserOptions> >(); var requireRole = new RolesAuthorizationRequirementExtended(monitor, superUser, allowedRoles); services.AddSingleton <IAuthorizationHandler>(requireRole); builder.AddRequirements(requireRole); return(builder); }