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);
        }
Esempio n. 2
0
        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);
        }