Beispiel #1
0
        /// <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);
            }
        }
Beispiel #2
0
        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);
            }
        }
Beispiel #6
0
        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);
        }