/// <summary> /// <para>Opens the configuration settings and registers them with the application.</para> /// </summary> /// <param name="serviceProvider"> /// <para>The a mechanism for retrieving a service object; that is, an object that provides custom support to other objects.</para> /// </param> public void Open(IServiceProvider serviceProvider) { ConfigurationContext configurationContext = ServiceHelper.GetCurrentConfigurationContext(serviceProvider); ConfigurationSectionCollectionNode sectionsNode = null; ConfigurationNode configurationNode = ServiceHelper.GetCurrentRootNode(serviceProvider); RemoveCurrentConfigurationSectionCollectionNode(serviceProvider); try { string appName = SR.DefaultApplicationName; ConfigurationSettings configurationSettings = configurationContext.GetMetaConfiguration(); if (null != configurationSettings) { appName = configurationSettings.ApplicationName; if (configurationSettings.ConfigurationSections.Count > 0) { sectionsNode = new ConfigurationSectionCollectionNode(configurationSettings); configurationNode.Nodes.Add(sectionsNode); } } if (configurationNode is ApplicationConfigurationNode) { ((ApplicationConfigurationNode)configurationNode).Name = appName; } } catch (ConfigurationException e) { ServiceHelper.LogError(serviceProvider, sectionsNode, e); } }
private ConfigurationContext GetContext() { ConfigurationContext context = currentNode.Hierarchy.BuildConfigurationContext(); ConfigurationSettings settings = context.GetMetaConfiguration(); ConfigurationDictionary config = new ConfigurationDictionary(); config.Add(ConfigurationSettings.SectionName, settings); context = new ConfigurationContext(config); return(context); }
protected override Type GetConfigurationType(string providerName) { ConfigurationSettings configurationSettings = ConfigurationContext.GetMetaConfiguration(); if (null == configurationSettings.KeyAlgorithmPairStorageProviderData) { throw new ConfigurationException(SR.ExceptionNoKeyAlgorithmStorageProvider); } return(GetType(configurationSettings.KeyAlgorithmPairStorageProviderData.TypeName)); }
private ConfigurationContext GetContext() { IUIHierarchy hierarchy = ServiceHelper.GetCurrentHierarchy(provider); ConfigurationContext context = hierarchy.BuildConfigurationContext(); ConfigurationSettings settings = context.GetMetaConfiguration(); ConfigurationDictionary config = new ConfigurationDictionary(); config.Add(ConfigurationSettings.SectionName, settings); context = new ConfigurationContext(config); return(context); }
public void StorageTestChangeEncryption() { SaveKeyAlgorithmPair(XmlStringWithEncryption); using (ConfigurationContext configurationContext = CreateConfigurationContext(XmlStringWithEncryption)) { StorageProviderFactory factory = new StorageProviderFactory(configurationContext); IStorageProviderReader storage = factory.Create(applConfig1) as IStorageProviderReader; Assert.AreSame(storage.GetType(), typeof(XmlFileStorageProvider)); ((IStorageProviderWriter)storage).Write(GetData()); configurationContext.GetMetaConfiguration().ConfigurationSections[0].Encrypt = false; factory = new StorageProviderFactory(configurationContext); IStorageProviderWriter storageWriter = factory.Create(applConfig1) as IStorageProviderWriter; storageWriter.Write(GetData()); XmlNode data = storageWriter.Read() as XmlNode; Assert.AreEqual(GetData().OuterXml, data.OuterXml); } }
private bool SaveKeyAlgorithmPairWithNewDapiSettings(DpapiSettings newDpapiSettings, DpapiSettings originalDpapiSettings) { ConfigurationContext context = GetContext(); ConfigurationSettings settings = context.GetMetaConfiguration(); FileKeyAlgorithmPairStorageProvider loadProvider = new FileKeyAlgorithmPairStorageProvider(); FileKeyAlgorithmPairStorageProviderData loadData = new FileKeyAlgorithmPairStorageProviderData( SR.DefaultFileKeyAlgorithmStorageProviderNodeName, currentNode.File, GetDpapiSettingsData(originalDpapiSettings)); settings.KeyAlgorithmPairStorageProviderData = loadData; loadProvider.ConfigurationName = loadData.Name; loadProvider.Initialize(new RuntimeConfigurationView(context)); FileKeyAlgorithmPairStorageProvider saveProvider = new FileKeyAlgorithmPairStorageProvider(); FileKeyAlgorithmPairStorageProviderData saveData = new FileKeyAlgorithmPairStorageProviderData( SR.DefaultFileKeyAlgorithmStorageProviderNodeName, currentNode.File, GetDpapiSettingsData(newDpapiSettings)); settings.KeyAlgorithmPairStorageProviderData = saveData; saveProvider.ConfigurationName = saveData.Name; saveProvider.Initialize(new RuntimeConfigurationView(context)); try { KeyAlgorithmPair key = loadProvider.Load(); saveProvider.Save(key); } catch (Exception ex) { MessageBox.Show( SR.FileKeyAlgorithmDpapiSettingsEditorUnableToSaveNewDpapiSettingsErrorMessage(ex.Message), SR.FileKeyAlgorithmDpapiSettingsEditorUnableToSaveNewDpapiSettingsCaption, MessageBoxButtons.OK, MessageBoxIcon.Error ); return(false); } return(true); }
private FileKeyAlgorithmPairStorageProvider GetCurrentProvider() { ConfigurationContext context = GetContext(); FileKeyAlgorithmPairStorageProvider provider = new FileKeyAlgorithmPairStorageProvider(); FileKeyAlgorithmPairStorageProviderData data = new FileKeyAlgorithmPairStorageProviderData(); if (this.dpapiSettings != null) { data.DpapiSettings = new DpapiSettingsData(this.dpapiSettings.Entropy, this.dpapiSettings.Mode); } data.Path = this.path; data.Name = SR.DefaultFileKeyAlgorithmStorageProviderNodeName; ConfigurationSettings settings = context.GetMetaConfiguration(); settings.KeyAlgorithmPairStorageProviderData = data; provider.ConfigurationName = data.Name; provider.Initialize(new RuntimeConfigurationView(context)); return(provider); }