Exemple #1
0
        public static IAclProvider Deny(string resource, string verb, params string[] subjects)
        {
            List <AccessRule> acls = new List <AccessRule>();

            resource = resource.ToLower();
            verb     = verb.ToLower();
            foreach (string subject in subjects)
            {
                acls.Add(new Deny(resource, verb, subject.ToLower()));
            }
            return(DefaultProvider.SetAcls(acls.ToArray()));
        }
Exemple #2
0
        static AclManager()
        {
            Providers = new Dictionary <string, IAclProvider>();
#if !SILVERLIGHT
            AclConfigurationSection configSection = (AclConfigurationSection)ConfigurationManager.GetSection("nacl");
            if (configSection != null)
            {
                foreach (ProviderElement provider in configSection.Providers)
                {
                    IAclProvider securityProvider = provider.Provider;
                    Providers.Add(provider.Name, securityProvider);
                    if (provider.Name == configSection.DefaultProviderName)
                    {
                        DefaultProvider = securityProvider;
                    }
                }
                foreach (Ace ace in configSection.Rights)
                {
                    AccessRule privilege = null;
                    switch (ace.Type)
                    {
                    case AccessRules.Allow:
                        privilege = new Allow(ace.Resource, ace.Verb, ace.Subject);
                        break;

                    case AccessRules.Deny:
                        privilege = new Deny(ace.Resource, ace.Verb, ace.Subject);
                        break;
                    }

                    if (!string.IsNullOrEmpty(ace.TargetProvider))
                    {
                        Providers[ace.TargetProvider].SetAcls(privilege);
                    }
                    else
                    {
                        DefaultProvider.SetAcls(privilege);
                    }
                }
            }
            else
#endif
            DefaultProvider = new MemoryProvider();
        }