void provider_AclChanged(IAclProvider sender, string resource) { if (AclChanged != null) { AclChanged(this, resource); } }
public Program(IAclProvider aclProvider) { _aclProvider = aclProvider; ISystemFactory system = new LocalFactory(); _system = new IpTablesSystem(system, new IPTablesBinaryAdapter(), new IpSetBinaryAdapter(system)); }
/// <summary> /// Initializes a new instance of the <see cref="SessionPermissions{TIdentity}" /> class. /// </summary> /// <param name="currentUserMembership">The current user membership.</param> /// <param name="membershipProvider">The membership provider.</param> /// <param name="aclProvider">The acl provider.</param> public SessionPermissions( IObjectIdentity <TIdentity>[][] currentUserMembership, IMembershipProvider <TIdentity> membershipProvider, IAclProvider <TIdentity> aclProvider) { _currentUserMembership = currentUserMembership; _calculator = new PermissionCalculator <TIdentity>(membershipProvider, new OrderedPermissionProvider <TIdentity>(aclProvider)); }
public RouterProvider Register(string resource, IAclProvider provider, int priority) { resource = resource.ToLower(); if (!Routes.ContainsKey(resource)) { Routes[resource] = new OrderedList <int, IAclProvider>(); } Routes[resource].Add(priority, provider); provider.AclChanged += provider_AclChanged; return(this); }
void provider_AclChanged(IAclProvider sender, string obj) { if (AclChanged != null) { foreach (var providerResource in Routes) { string resource = providerResource.Key; foreach (IAclProvider provider in providerResource.Value) { if (provider == sender) { AclChanged(this, resource + obj); } } } } }
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(); }
static void DefaultProvider_AclChanged(IAclProvider sender, string resource) { string currentResource = resource; int lastIndexOfSlash = resource.Length; ICollection <WeakReference> handlers; do { currentResource = currentResource.Substring(0, lastIndexOfSlash); if (aclChangedHandlers.TryGetValue(currentResource, out handlers)) { foreach (WeakReference weakHandler in handlers) { if (weakHandler.IsAlive) { ((Action <string>)weakHandler.Target)(resource); } } } if (lastIndexOfSlash == 0) { break; } lastIndexOfSlash = currentResource.LastIndexOf('/'); }while (true); if (aclChangedHandlers.TryGetValue("*", out handlers)) { foreach (WeakReference weakHandler in handlers) { if (weakHandler.IsAlive) { ((Action <string>)weakHandler.Target)(resource); } } } }
/// <summary> /// Initializes a new instance of the <see cref="OrderedPermissionProvider{TIdentity}" /> class. /// </summary> /// <param name="aclProvider">The acl provider.</param> public OrderedPermissionProvider(IAclProvider <TIdentity> aclProvider) { _aclProvider = aclProvider; }
/// <summary> /// Initializes a new instance of the <see cref="PermissionEngine{TIdentity}"/> class. /// </summary> /// <param name="membershipProvider">The membership provider.</param> /// <param name="aclProvider">The acl provider.</param> /// <exception cref="ArgumentNullException"> /// membershipProvider /// or /// aclProvider /// </exception> public PermissionEngine(IMembershipProvider <TIdentity> membershipProvider, IAclProvider <TIdentity> aclProvider) { _membershipProvider = membershipProvider ?? throw new ArgumentNullException(nameof(membershipProvider)); _aclProvider = aclProvider ?? throw new ArgumentNullException(nameof(aclProvider)); }
public void Remove(IAclProvider provider) { ((List <IAclProvider>)Providers).Remove(provider); provider.AclChanged -= provider_AclChanged; }
public void Add(IAclProvider provider) { ((List <IAclProvider>)Providers).Add(provider); provider.AclChanged += provider_AclChanged; }
public RouterProvider Register(string resource, IAclProvider provider) { return(Register(resource, provider, 3)); }