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);
        }
示例#2
0
        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);
        }