public AuthorizationOperationFilter()
        {
            var permissionsSelector = new PolicySelectorWithLabel <AuthorizationAttribute>
            {
                Label    = "Permissions",
                Selector = authAttributes =>
                           authAttributes
                           .Where(a => a.Arguments?.Length > 0)
                           .Select(a => string.Join(",", a.Arguments.Select(e => e.ToString())))
            };

            _filter = new AppendAuthorizeToSummaryOperationFilter <AuthorizationAttribute>(new[]
            {
                permissionsSelector
            }.AsEnumerable());
        }
예제 #2
0
        /// <summary>
        /// 初始化一个<see cref="AppendAuthorizeToSummaryOperationFilter"/>类型的实例
        /// </summary>
        public AppendAuthorizeToSummaryOperationFilter()
        {
            var policySelector = new PolicySelectorWithLabel <AuthorizeAttribute>()
            {
                Label    = "policies",
                Selector = authAttributes =>
                           authAttributes
                           .Where(x => !string.IsNullOrWhiteSpace(x.Policy))
                           .Select(x => x.Policy)
            };

            var rolesSelector = new PolicySelectorWithLabel <AuthorizeAttribute>()
            {
                Label    = "roles",
                Selector = authAttributes =>
                           authAttributes
                           .Where(x => !string.IsNullOrWhiteSpace(x.Roles))
                           .Select(x => x.Roles)
            };

            _filter = new AppendAuthorizeToSummaryOperationFilter <AuthorizeAttribute>(new[] { policySelector, rolesSelector }.AsEnumerable());
        }