Exemplo n.º 1
0
        public void SecurityCacheProviderWithDisabledPolicyIsNotRemovedIfGroupPoliciesAreDisabled()
        {
            MockConfigurationElementManageabilityProvider registeredProvider
                = new MockConfigurationElementManageabilityProvider();
            Dictionary <Type, ConfigurationElementManageabilityProvider> subProviders
                = new Dictionary <Type, ConfigurationElementManageabilityProvider>();

            subProviders.Add(typeof(SecurityCacheProviderData), registeredProvider);
            provider = new SecuritySettingsManageabilityProvider(subProviders);

            SecurityCacheProviderData securityCacheProvider1Data = new SecurityCacheProviderData("securityCacheProvider1", typeof(Object));

            section.SecurityCacheProviders.Add(securityCacheProvider1Data);
            SecurityCacheProviderData securityCacheProvider2Data = new SecurityCacheProviderData("securityCacheProvider2", typeof(Object));

            section.SecurityCacheProviders.Add(securityCacheProvider2Data);

            MockRegistryKey machineSecurityCacheProvidersKey = new MockRegistryKey(false);

            machineKey.AddSubKey(SecuritySettingsManageabilityProvider.SecurityCacheProvidersKeyName, machineSecurityCacheProvidersKey);
            MockRegistryKey machineSecurityCacheProvider2Key = new MockRegistryKey(false);

            machineSecurityCacheProvidersKey.AddSubKey("securityCacheProvider2", machineSecurityCacheProvider2Key);
            machineSecurityCacheProvider2Key.AddBooleanValue(SecuritySettingsManageabilityProvider.PolicyValueName, false);

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

            Assert.AreEqual(2, section.SecurityCacheProviders.Count);
            Assert.IsNotNull(section.SecurityCacheProviders.Get("securityCacheProvider1"));
            Assert.IsNotNull(section.SecurityCacheProviders.Get("securityCacheProvider2"));

            Assert.IsTrue(MockRegistryKey.CheckAllClosed(machineSecurityCacheProvidersKey, machineSecurityCacheProvider2Key));
        }
        /// <summary>
        /// <para>Gets the configuration object <see cref="Type"/> for the factory to create given the <paramref name="securityCacheProviderName"/>.</para>
        /// </summary>
        /// <param name="securityCacheProviderName">
        /// <para>The name of the <see cref="ISecurityCacheProvider"/> to create.</para>
        /// </param>
        /// <returns>
        /// <para>The <see cref="Type"/> of the <see cref="ISecurityCacheProvider"/> to create.</para>
        /// </returns>
        protected override Type GetConfigurationType(string securityCacheProviderName)
        {
            SecurityConfigurationView securityConfigurationView = (SecurityConfigurationView)CreateConfigurationView();
            SecurityCacheProviderData securityCacheProviderData = securityConfigurationView.GetSecurityCacheProviderData(securityCacheProviderName);

            return(GetType(securityCacheProviderData.TypeName));
        }
Exemplo n.º 3
0
        private CachingStoreProviderData GetCacheStorageProviderData()
        {
            SecurityCacheProviderData securityCacheProviderData = securityConfigurationView.GetSecurityCacheProviderData(ConfigurationName);

            ArgumentValidation.CheckExpectedType(securityCacheProviderData, typeof(CachingStoreProviderData));

            return((CachingStoreProviderData)securityCacheProviderData);
        }
Exemplo n.º 4
0
 /// <summary>
 /// Initializes with configuration data and display name.
 /// </summary>
 /// <param name="securityCacheProviderData">The configuration data.</param>
 protected SecurityCacheProviderNode(SecurityCacheProviderData securityCacheProviderData) : base()
 {
     if (securityCacheProviderData == null)
     {
         throw new ArgumentNullException("securityCacheProviderData");
     }
     this.securityCacheProviderData = securityCacheProviderData;
 }
Exemplo n.º 5
0
        public void ManageabilityProviderGeneratesProperAdmContent()
        {
            DictionaryConfigurationSource configurationSource = new DictionaryConfigurationSource();

            configurationSource.Add(SecuritySettings.SectionName, section);

            AuthorizationProviderData authorization = new AuthorizationProviderData("authorization", typeof(object));
            SecurityCacheProviderData security      = new SecurityCacheProviderData("security", typeof(object));

            section.AuthorizationProviders.Add(authorization);
            section.SecurityCacheProviders.Add(security);

            MockConfigurationElementManageabilityProvider subProvider = new MockConfigurationElementManageabilityProvider();
            Dictionary <Type, ConfigurationElementManageabilityProvider> subProviders
                = new Dictionary <Type, ConfigurationElementManageabilityProvider>();

            subProviders.Add(typeof(AuthorizationProviderData), subProvider);
            subProviders.Add(typeof(SecurityCacheProviderData), subProvider);
            provider = new ConfigurationSectionManageabilityProviderWrapper(new SecuritySettingsManageabilityProvider(subProviders));

            MockAdmContentBuilder contentBuilder = new MockAdmContentBuilder();

            provider.InvokeAddAdministrativeTemplateDirectives(contentBuilder, section, configurationSource, "TestApp");

            Assert.AreEqual(2, subProvider.configurationObjects.Count);
            Assert.AreSame(authorization, subProvider.configurationObjects[0]);
            Assert.AreSame(security, subProvider.configurationObjects[1]);
            MockAdmContent            content = contentBuilder.GetMockContent();
            IEnumerator <AdmCategory> categoriesEnumerator = content.Categories.GetEnumerator();

            Assert.IsTrue(categoriesEnumerator.MoveNext());
            Assert.AreEqual(Resources.SecuritySectionCategoryName, categoriesEnumerator.Current.Name);
            IEnumerator <AdmCategory> subCategoriesEnumerator = categoriesEnumerator.Current.Categories.GetEnumerator();

            Assert.IsTrue(subCategoriesEnumerator.MoveNext());
            Assert.AreEqual(Resources.AuthorizationProvidersCategoryName, subCategoriesEnumerator.Current.Name);
            Assert.IsTrue(subCategoriesEnumerator.MoveNext());
            Assert.AreEqual(Resources.SecurityCacheProvidersCategoryName, subCategoriesEnumerator.Current.Name);
            Assert.IsFalse(subCategoriesEnumerator.MoveNext());
            IEnumerator <AdmPolicy> sectionPoliciesEnumerator = categoriesEnumerator.Current.Policies.GetEnumerator();

            Assert.IsTrue(sectionPoliciesEnumerator.MoveNext());
            Assert.AreEqual(Resources.SecuritySettingsPolicyName, sectionPoliciesEnumerator.Current.Name);
            IEnumerator <AdmPart> sectionPartsEnumerator = sectionPoliciesEnumerator.Current.Parts.GetEnumerator();

            Assert.IsTrue(sectionPartsEnumerator.MoveNext());
            Assert.AreSame(typeof(AdmDropDownListPart), sectionPartsEnumerator.Current.GetType());
            Assert.AreEqual(SecuritySettingsManageabilityProvider.DefaultAuthorizationProviderPropertyName,
                            ((AdmDropDownListPart)sectionPartsEnumerator.Current).ValueName);
            Assert.IsTrue(sectionPartsEnumerator.MoveNext());
            Assert.AreSame(typeof(AdmDropDownListPart), sectionPartsEnumerator.Current.GetType());
            Assert.AreEqual(SecuritySettingsManageabilityProvider.DefaultSecurityCacheProviderPropertyName,
                            ((AdmDropDownListPart)sectionPartsEnumerator.Current).ValueName);
            Assert.IsFalse(sectionPartsEnumerator.MoveNext());
            Assert.IsFalse(sectionPoliciesEnumerator.MoveNext());
            Assert.IsFalse(categoriesEnumerator.MoveNext());
        }
        /// <summary>
        /// <para>Gets the named <see cref="SecurityCacheProviderData"/> from configuration.</para>
        /// </summary>
        /// <param name="securityCacheProviderName">
        /// <para>The name of the <see cref="SecurityCacheProviderData"/> to get the data.</para>
        /// </param>
        /// <returns>
        /// <para>The named <see cref="SecurityCacheProviderData"/> from configuration.</para>
        /// </returns>
        public SecurityCacheProviderData GetSecurityCacheProviderData(string securityCacheProviderName)
        {
            SecuritySettings          settings = GetSecuritySettings();
            SecurityCacheProviderData data     = settings.SecurityCacheProviders.Get(securityCacheProviderName);

            if (data == null)
            {
                throw new ConfigurationErrorsException(string.Format(Resources.ExceptionSecurityCacheProviderNotFound, securityCacheProviderName));
            }
            return(data);
        }
        /// <summary>
        /// <para>Gets the named <see cref="SecurityCacheProviderData"/> from configuration.</para>
        /// </summary>
        /// <param name="securityCacheProviderName">
        /// <para>The name of the <see cref="SecurityCacheProviderData"/> to get the data.</para>
        /// </param>
        /// <returns>
        /// <para>The named <see cref="SecurityCacheProviderData"/> from configuration.</para>
        /// </returns>
        public virtual SecurityCacheProviderData GetSecurityCacheProviderData(string securityCacheProviderName)
        {
            SecuritySettings          settings = GetSecuritySettings();
            SecurityCacheProviderData data     = settings.SecurityCacheProviders[securityCacheProviderName];

            if (data == null)
            {
                throw new ConfigurationException(SR.ExceptionSecurityCacheProviderNotFound(securityCacheProviderName));
            }
            return(data);
        }
Exemplo n.º 8
0
        private void BuildSecurityCacheProviders(SecurityCacheProviderData securityProviderData)
        {
            ConfigurationNode securityProviderNode = NodeCreationService.CreateNodeByDataType(securityProviderData.GetType(), new object[] { securityProviderData });

            if (null == securityProviderNode)
            {
                LogNodeMapError(securityCacheProviderCollectionNode_, securityProviderData.GetType());
                return;
            }
            if (securityProviderNode.Name == settings.DefaultSecurityCacheProviderName)
            {
                defaultSecurityCacheProviderNode = (SecurityCacheProviderNode)securityProviderNode;
            }
            securityCacheProviderCollectionNode_.AddNode(securityProviderNode);
        }
        public void GetSecurityCacheProvidersDataTest()
        {
            SecurityCacheProviderCollectionNode node = new SecurityCacheProviderCollectionNode();

            CreateHierarchyAndAddToHierarchyService(node, CreateDefaultConfiguration());
            CustomSecurityCacheProviderNode providerNode = new CustomSecurityCacheProviderNode();

            node.Nodes.Add(providerNode);
            providerNode.Name     = "provider1";
            providerNode.TypeName = typeof(MockSecurityCacheProvider).AssemblyQualifiedName;

            SecurityCacheProviderDataCollection providers = node.SecurityCacheProviderDataCollection;

            Assert.IsNotNull(providers);

            Assert.AreEqual(1, providers.Count);
            SecurityCacheProviderData data = providers["provider1"];

            Assert.IsNotNull(data);
            CustomSecurityCacheProviderData customData = data as CustomSecurityCacheProviderData;

            Assert.IsNotNull(customData);
            Assert.AreEqual(typeof(MockSecurityCacheProvider).AssemblyQualifiedName, customData.TypeName);
        }
Exemplo n.º 10
0
 private void BuildSecurityCacheProviders(SecurityCacheProviderData securityProviderData)
 {
     ConfigurationNode securityProviderNode = NodeCreationService.CreateNodeByDataType(securityProviderData.GetType(), new object[] { securityProviderData });
     if (null == securityProviderNode)
     {
         LogNodeMapError(securityCacheProviderCollectionNode_, securityProviderData.GetType());
         return;
     }
     if (securityProviderNode.Name == settings.DefaultSecurityCacheProviderName) defaultSecurityCacheProviderNode = (SecurityCacheProviderNode)securityProviderNode;
     securityCacheProviderCollectionNode_.AddNode(securityProviderNode);
 }