Exemple #1
0
        private AccessPolicy GetPolicyFromConfig(string policyName)
        {
            var policy = new AccessPolicy();

            IConfigurationSection ps = _section?.GetSection(policyName) ?? null;

            if (ps == null)
            {
                return(policy);
            }

            //
            // Users
            policy.Users = ps.GetValue("users", string.Empty).Trim();

            //
            // AccessKey
            policy.AccessKey = ps.GetValue("access_key", true);

            //
            // Forbidden
            policy.Forbidden = ps.GetValue("forbidden", false);

            //
            // ReadOnly
            policy.ReadOnly = ps.GetValue("read_only", false);

            return(policy);
        }
        private void AddAccessPolicy(AuthorizationPolicyBuilder builder, AuthorizationOptions options, AccessPolicy policy)
        {
            if (policy == null)
            {
                throw new ArgumentNullException(nameof(policy));
            }

            //
            // Forbidden
            if (policy.Forbidden)
            {
                builder.Combine(GetPolicyRequirement(FORBIDDEN, options));
            }

            //
            // AccessKey
            if (policy.AccessKey)
            {
                builder.Combine(GetPolicyRequirement(ACCESS_KEY, options));
            }

            //
            // Users
            if (!policy.Users.Equals("Everyone", StringComparison.OrdinalIgnoreCase))
            {
                builder.Combine(GetPolicyRequirement(WINDOWS_USER, options));

                builder.AddRequirements(new NtlmAuthorizationPolicy(policy.Users, _roleMapping));
            }
            else
            {
                builder.Combine(GetPolicyRequirement(AUTHENTICATED_USER, options));
            }

            //
            // Read Only
            if (policy.ReadOnly)
            {
                builder.Combine(GetPolicyRequirement(READ_ONLY, options));
            }
        }