Ejemplo n.º 1
0
        private static SecuritySettings GenerateSecuritySettings()
        {
            SecuritySettings settings = new SecuritySettings();
            settings.DefaultAuthorizationProviderName = "Authorization Provider";
            settings.DefaultAuthenticationProviderName = "Authentication Provider";
            settings.DefaultProfileProviderName = "Profile Provider";
            settings.DefaultRolesProviderName = "Roles Provider";
            settings.DefaultSecurityCacheProviderName = "Security Cache Provider1";

            AuthorizationRuleProviderData providerData = new AuthorizationRuleProviderData("RuleProvider");
            providerData.Rules.Add(new AuthorizationRuleData("Rule1", "I:TestUser OR R:Admin"));
            settings.AuthorizationProviders.Add(providerData);

            settings.AuthorizationProviders.Add(new CustomAuthorizationProviderData("Authorization Provider", typeof (MockAuthorizationProvider).AssemblyQualifiedName));
            settings.AuthorizationProviders.Add(new CustomAuthorizationProviderData("provider1", typeof(MockAuthorizationProvider).AssemblyQualifiedName ));
            settings.AuthorizationProviders.Add(new CustomAuthorizationProviderData("provider2", typeof(Mock2AuthorizationProvider).AssemblyQualifiedName ));

            settings.AuthenticationProviders.Add(new CustomAuthenticationProviderData("Authentiction Provider", typeof (MockAuthenticationProvider).AssemblyQualifiedName));

            settings.RolesProviders.Add(new CustomRolesProviderData("Roles Provider", typeof (MockRolesProvider).AssemblyQualifiedName));

            settings.ProfileProviders.Add(new CustomProfileProviderData("Profile Provider", typeof (MockProfileProvider).AssemblyQualifiedName));

            settings.SecurityCacheProviders.Add(new CustomSecurityCacheProviderData("Security Cache Provider1", typeof (MockSecurityCacheProvider).AssemblyQualifiedName));

            return settings;
        }
        public void Setup()
        {
            AuthorizationRuleProviderData ruleProvider = new AuthorizationRuleProviderData();
            ruleProvider.Name = "Rule Provider";

            SecuritySettings settings = new SecuritySettings();
            settings.AuthorizationProviders.Add(ruleProvider);

            registrations = settings.GetRegistrations(null);
        }
            public AuthorizeRuleBasedBuilder(IConfigureSecuritySettings context, string ruleBasedProviderName)
                :base(context)
            {
                ruleAuthZProvider = new AuthorizationRuleProviderData
                {
                    Name = ruleBasedProviderName
                };

                base.SecuritySettings.AuthorizationProviders.Add(ruleAuthZProvider);
            }
        protected override void Arrange()
        {
            updatableConfigurationSource = new ConfigurationSourceUpdatable();

            ruleProvider = new AuthorizationRuleProviderData();
            ruleProvider.Name = "ruleProvider";

            settings = new SecuritySettings();
            settings.AuthorizationProviders.Add(ruleProvider);

            updatableConfigurationSource.Add(SecuritySettings.SectionName, settings);

            container = new UnityContainer();
            containerConfigurator = new UnityContainerConfigurator(container);
            EnterpriseLibraryContainer.ConfigureContainer(containerConfigurator, updatableConfigurationSource);
        }
        /// <summary>
        /// This method supports the Enterprise Library infrastructure and is not intended to be used directly from your code.
        /// Builds a <see cref="AuthorizationRuleProvider"/> based on an instance of <see cref="AuthorizationRuleProviderData"/>.
        /// </summary>
        /// <seealso cref="AuthorizationProviderCustomFactory"/>
        /// <param name="context">The <see cref="IBuilderContext"/> that represents the current building process.</param>
        /// <param name="objectConfiguration">The configuration object that describes the object to build. Must be an instance of <see cref="AuthorizationRuleProviderData"/>.</param>
        /// <param name="configurationSource">The source for configuration objects.</param>
        /// <param name="reflectionCache">The cache to use retrieving reflection information.</param>
        /// <returns>A fully initialized instance of <see cref="AuthorizationRuleProvider"/>.</returns>
        public IAuthorizationProvider Assemble(IBuilderContext context, AuthorizationProviderData objectConfiguration, IConfigurationSource configurationSource, ConfigurationReflectionCache reflectionCache)
        {
            AuthorizationRuleProviderData castedObjectConfiguration
                = (AuthorizationRuleProviderData)objectConfiguration;

            IDictionary <string, IAuthorizationRule> authorizationRules = new Dictionary <string, IAuthorizationRule>();

            foreach (AuthorizationRuleData ruleData in castedObjectConfiguration.Rules)
            {
                authorizationRules.Add(ruleData.Name, ruleData);
            }

            IAuthorizationProvider createdObject
                = new AuthorizationRuleProvider(authorizationRules);

            return(createdObject);
        }
        public void FixtureSetup()
        {
            data = new AuthorizationRuleProviderData("foo");
            data.TypeName = typeof(AuthorizationRuleProviderData).AssemblyQualifiedName;

            data.Rules.Add(new AuthorizationRuleData(testRuleName, "I:*"));

            provider = new AuthorizationRuleProvider();
            provider.ConfigurationName = data.Name;
            provider.Initialize(new TestAuthorizationRuleProviderView(data, context));

            principal = new GenericPrincipal(new GenericIdentity("user1"), new string[] {"Admin", "Manager"});
        }
 public TestAuthorizationRuleProviderView(AuthorizationRuleProviderData data, ConfigurationContext context)
     : base(context)
 {
     this.data = data;
 }
        public void RegisteredAuthorizationProviderDataProviderIsCalledWithCorrectOverrides()
        {
            MockConfigurationElementManageabilityProvider registeredProvider
                = new MockConfigurationElementManageabilityProvider();
            Dictionary<Type, ConfigurationElementManageabilityProvider> subProviders
                = new Dictionary<Type, ConfigurationElementManageabilityProvider>();
            subProviders.Add(typeof(AuthorizationRuleProviderData), registeredProvider);
            provider = new SecuritySettingsManageabilityProvider(subProviders);

            AuthorizationRuleProviderData authorizationProviderData = new AuthorizationRuleProviderData("authorizationProvider1");
            section.AuthorizationProviders.Add(authorizationProviderData);

            MockRegistryKey machineauthorizationProvidersKey = new MockRegistryKey(false);
            machineKey.AddSubKey(SecuritySettingsManageabilityProvider.AuthorizationProvidersKeyName, machineauthorizationProvidersKey);
            MockRegistryKey machineauthorizationProviderKey = new MockRegistryKey(false);
            machineauthorizationProvidersKey.AddSubKey("authorizationProvider1", machineauthorizationProviderKey);
            MockRegistryKey machineOtherauthorizationProviderKey = new MockRegistryKey(false);
            machineauthorizationProvidersKey.AddSubKey("authorizationProvider2", machineOtherauthorizationProviderKey);

            MockRegistryKey userauthorizationProvidersKey = new MockRegistryKey(false);
            userKey.AddSubKey(SecuritySettingsManageabilityProvider.AuthorizationProvidersKeyName, userauthorizationProvidersKey);
            MockRegistryKey userauthorizationProviderKey = new MockRegistryKey(false);
            userauthorizationProvidersKey.AddSubKey("authorizationProvider1", userauthorizationProviderKey);
            MockRegistryKey userOtherauthorizationProviderKey = new MockRegistryKey(false);
            userauthorizationProvidersKey.AddSubKey("authorizationProvider2", userOtherauthorizationProviderKey);

            provider.OverrideWithGroupPolicies(section, true, machineKey, userKey);

            Assert.IsTrue(registeredProvider.called);
            Assert.AreSame(authorizationProviderData, registeredProvider.LastConfigurationObject);
            Assert.AreSame(machineauthorizationProviderKey, registeredProvider.machineKey);
            Assert.AreSame(userauthorizationProviderKey, registeredProvider.userKey);

            Assert.IsTrue(
                MockRegistryKey.CheckAllClosed(machineauthorizationProvidersKey, machineauthorizationProviderKey, machineOtherauthorizationProviderKey,
                                               userauthorizationProvidersKey, userauthorizationProviderKey, userOtherauthorizationProviderKey));
        }
        public void RegisteredAuthorizationProviderDataProviderIsCalledWithNoOverrides()
        {
            MockConfigurationElementManageabilityProvider registeredProvider
                = new MockConfigurationElementManageabilityProvider();
            Dictionary<Type, ConfigurationElementManageabilityProvider> subProviders
                = new Dictionary<Type, ConfigurationElementManageabilityProvider>();
            subProviders.Add(typeof(AuthorizationRuleProviderData), registeredProvider);
            provider = new SecuritySettingsManageabilityProvider(subProviders);

            AuthorizationRuleProviderData authorizationProviderData = new AuthorizationRuleProviderData("authorizationProvider1");
            section.AuthorizationProviders.Add(authorizationProviderData);

            provider.OverrideWithGroupPolicies(section, true, machineKey, userKey);

            Assert.IsTrue(registeredProvider.called);
            Assert.AreSame(authorizationProviderData, registeredProvider.LastConfigurationObject);
            Assert.AreEqual(null, registeredProvider.machineKey);
            Assert.AreEqual(null, registeredProvider.userKey);
        }