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())); }
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(); }