コード例 #1
0
        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);
        }
コード例 #2
0
ファイル: AuthorizationExtensions.cs プロジェクト: qiqi545/HQ
        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);
        }