Exemple #1
0
        public ConfigurationSection GetSection(string sectionName)
        {
            // always request to current accessor, no need for lock
            ConfigurationSection section = currentConfigurationAccessor.GetSection(sectionName);

            if (section != null)
            {
                lock (configurationUpdateLock)
                {
                    watcherCoordinator.SetWatcherForConfigSource(section.SectionInformation.ConfigSource);
                }
            }

            return(section);
        }
        void DoUpdateConfigurationSectionManageability(IConfigurationAccessor configurationAccessor,
                                                       String sectionName)
        {
            ConfigurationSectionManageabilityProvider manageabilityProvider = manageabilityProviders[sectionName];

            ConfigurationSection section = configurationAccessor.GetSection(sectionName);

            if (section != null)
            {
                IRegistryKey machineKey = null;
                IRegistryKey userKey    = null;

                try
                {
                    LoadPolicyRegistryKeys(sectionName, out machineKey, out userKey);

                    if (!manageabilityProvider
                        .OverrideWithGroupPolicies(section, readGroupPolicies, machineKey, userKey))
                    {
                        configurationAccessor.RemoveSection(sectionName);
                    }
                }
                catch (Exception e)
                {
                    ManageabilityExtensionsLogger.LogException(e, Resources.ExceptionUnexpectedErrorProcessingSection);
                }
                finally
                {
                    ReleasePolicyRegistryKeys(machineKey, userKey);
                }
            }
        }
 public void UpdateConfigurationManageability(IConfigurationAccessor configurationAccessor)
 {
     updateCalled = true;
     foreach (String sectionName in sectionNames)
     {
         configurationAccessor.GetSection(sectionName);
         notifiedSections.Add(sectionName);
     }
 }
 public void UpdateConfigurationManageability(IConfigurationAccessor configurationAccessor)
 {
     updateCalled = true;
     foreach (String sectionName in sectionNames)
     {
         configurationAccessor.GetSection(sectionName);
         notifiedSections.Add(sectionName);
     }
 }
		public void UpdateConfigurationManageability(IConfigurationAccessor configurationAccessor)
		{
			using (new GroupPolicyLock())
			{
				foreach (String sectionName in manageabilityProviders.Keys)
				{
					if (publishedSettingsMapping.ContainsKey(sectionName))
					{
						RevokeAll(publishedSettingsMapping[sectionName]);
					}

					ConfigurationSectionManageabilityProvider manageabilityProvider = manageabilityProviders[sectionName];

					ConfigurationSection section = configurationAccessor.GetSection(sectionName);
					if (section != null)
					{
						ICollection<ConfigurationSetting> wmiSettings = new List<ConfigurationSetting>();

						IRegistryKey machineKey = null;
						IRegistryKey userKey = null;

						try
						{
							LoadPolicyRegistryKeys(sectionName, out machineKey, out userKey);

							if (manageabilityProvider
									.OverrideWithGroupPoliciesAndGenerateWmiObjects(section,
										this.readGroupPolicies, machineKey, userKey,
										generateWmiObjects, wmiSettings))
							{
								publishedSettingsMapping[sectionName] = wmiSettings;

								PublishAll(wmiSettings, sectionName);
							}
							else
							{
								configurationAccessor.RemoveSection(sectionName);
							}
						}
						catch (Exception e)
						{
							ManageabilityExtensionsLogger.LogException(e, Resources.ExceptionUnexpectedErrorProcessingSection);
						}
						finally
						{
							ReleasePolicyRegistryKeys(machineKey, userKey);
						}
					}
				}
			}	// locks on group policies are released here
		}
Exemple #6
0
        public void UpdateConfigurationManageability(IConfigurationAccessor configurationAccessor)
        {
            using (new GroupPolicyLock())
            {
                foreach (String sectionName in manageabilityProviders.Keys)
                {
                    if (publishedSettingsMapping.ContainsKey(sectionName))
                    {
                        RevokeAll(publishedSettingsMapping[sectionName]);
                    }

                    ConfigurationSectionManageabilityProvider manageabilityProvider = manageabilityProviders[sectionName];

                    ConfigurationSection section = configurationAccessor.GetSection(sectionName);
                    if (section != null)
                    {
                        ICollection <ConfigurationSetting> wmiSettings = new List <ConfigurationSetting>();

                        IRegistryKey machineKey = null;
                        IRegistryKey userKey    = null;

                        try
                        {
                            LoadPolicyRegistryKeys(sectionName, out machineKey, out userKey);

                            if (manageabilityProvider
                                .OverrideWithGroupPoliciesAndGenerateWmiObjects(section,
                                                                                this.readGroupPolicies, machineKey, userKey,
                                                                                generateWmiObjects, wmiSettings))
                            {
                                publishedSettingsMapping[sectionName] = wmiSettings;

                                PublishAll(wmiSettings, sectionName);
                            }
                            else
                            {
                                configurationAccessor.RemoveSection(sectionName);
                            }
                        }
                        catch (Exception e)
                        {
                            ManageabilityExtensionsLogger.LogException(e, Resources.ExceptionUnexpectedErrorProcessingSection);
                        }
                        finally
                        {
                            ReleasePolicyRegistryKeys(machineKey, userKey);
                        }
                    }
                }
            }                   // locks on group policies are released here
        }
Exemple #7
0
        private void InitializeConfiguration()
        {
            currentConfigurationAccessor
                = new ConfigurationInstanceConfigurationAccessor(
                      ConfigurationManager.OpenMappedExeConfiguration(fileMap, ConfigurationUserLevel.None));

            manageabilityHelper.UpdateConfigurationManageability(currentConfigurationAccessor);
            foreach (String managedSectionName in currentConfigurationAccessor.GetRequestedSectionNames())
            {
                ConfigurationSection configurationSection = currentConfigurationAccessor.GetSection(managedSectionName);
                if (configurationSection != null)
                {
                    watcherCoordinator.SetWatcherForConfigSource(configurationSection.SectionInformation.ConfigSource);
                }
            }
        }
		private void InitializeConfiguration()
		{
			currentConfigurationAccessor
				= new ConfigurationInstanceConfigurationAccessor(
					ConfigurationManager.OpenMappedExeConfiguration(fileMap, ConfigurationUserLevel.None));

			manageabilityHelper.UpdateConfigurationManageability(currentConfigurationAccessor);
			foreach (String managedSectionName in currentConfigurationAccessor.GetRequestedSectionNames())
			{
				ConfigurationSection configurationSection = currentConfigurationAccessor.GetSection(managedSectionName);
				if (configurationSection != null)
				{
					watcherCoordinator.SetWatcherForConfigSource(configurationSection.SectionInformation.ConfigSource);
				}
			}
		}
 public void UpdateConfigurationManageability(IConfigurationAccessor configurationAccessor)
 {
     using (new GroupPolicyLock())
     {
         foreach (string str in this.manageabilityProviders.Keys)
         {
             if (this.publishedSettingsMapping.ContainsKey(str))
             {
                 this.RevokeAll(this.publishedSettingsMapping[str]);
             }
             ConfigurationSectionManageabilityProvider provider = this.manageabilityProviders[str];
             ConfigurationSection configurationObject = configurationAccessor.GetSection(str);
             if (configurationObject != null)
             {
                 ICollection<ConfigurationSetting> wmiSettings = new List<ConfigurationSetting>();
                 IRegistryKey machineKey = null;
                 IRegistryKey userKey = null;
                 try
                 {
                     try
                     {
                         this.LoadPolicyRegistryKeys(str, out machineKey, out userKey);
                         if (provider.OverrideWithGroupPoliciesAndGenerateWmiObjects(configurationObject, this.readGroupPolicies, machineKey, userKey, this.generateWmiObjects, wmiSettings))
                         {
                             this.publishedSettingsMapping[str] = wmiSettings;
                             this.PublishAll(wmiSettings, str);
                         }
                         else
                         {
                             configurationAccessor.RemoveSection(str);
                         }
                     }
                     catch (Exception exception)
                     {
                         ManageabilityExtensionsLogger.LogException(exception, Resources.ExceptionUnexpectedErrorProcessingSection);
                     }
                     continue;
                 }
                 finally
                 {
                     ReleasePolicyRegistryKeys(machineKey, userKey);
                 }
             }
         }
     }
 }
        void DoUpdateConfigurationSectionManageability(IConfigurationAccessor configurationAccessor,
                                                       String sectionName)
        {
            ConfigurationSectionManageabilityProvider manageabilityProvider = manageabilityProviders[sectionName];

            ConfigurationSection section = configurationAccessor.GetSection(sectionName);
            if (section != null)
            {
                IRegistryKey machineKey = null;
                IRegistryKey userKey = null;

                try
                {
                    LoadPolicyRegistryKeys(sectionName, out machineKey, out userKey);

                    if (!manageabilityProvider
                        .OverrideWithGroupPolicies(section, readGroupPolicies, machineKey, userKey))
                    {
                        configurationAccessor.RemoveSection(sectionName);
                    }
                }
                catch (Exception e)
                {
                    ManageabilityExtensionsLogger.LogException(e, Resources.ExceptionUnexpectedErrorProcessingSection);
                }
                finally
                {
                    ReleasePolicyRegistryKeys(machineKey, userKey);
                }
            }
        }