コード例 #1
0
        /// <summary>
        /// <para>Initializes the provider with a <see cref="ConfigurationView"/>.</para>
        /// </summary>
        /// <param name="configurationView">
        /// <para>A <see cref="ConfigurationView"/> object.</para>
        /// </param>
        /// <remarks>
        /// <para>The method expects a <see cref="RuntimeConfigurationView"/> object for the <paramref name="configurationView"/></para>
        /// </remarks>
        public override void Initialize(ConfigurationView configurationView)
        {
            ArgumentValidation.CheckForNullReference(configurationView, "configurationView");

            runtimeConfigurationView = GetStorageCursor(configurationView);
            GetFileKeyAlgorithmPairStorageProviderData();
        }
コード例 #2
0
        public void CreateTransformer()
        {
            XmlSerializerTransformer xmlTransformer = new XmlSerializerTransformer();
            // just a fake out to test the transformer
            RuntimeConfigurationView configurationView = new RuntimeConfigurationView(Context);

            xmlTransformer.CurrentSectionName = "ApplConfig1";
            xmlTransformer.Initialize(configurationView);
            transformer = xmlTransformer;
        }
コード例 #3
0
 private void SetCurrentDirectory(RuntimeConfigurationView RuntimeConfigurationView)
 {
     if (RuntimeConfigurationView.ConfigurationFile.Length == 0)
     {
         this.currentDirectory = AppDomain.CurrentDomain.BaseDirectory;
     }
     else
     {
         this.currentDirectory = Path.GetDirectoryName(RuntimeConfigurationView.ConfigurationFile);
     }
 }
        public void CannotInvokeNonPublicMethodWhenCallsMadeDirectly()
        {
            ReflectionPermission permission = new ReflectionPermission(ReflectionPermissionFlag.TypeInformation);
            permission.Deny();

            XmlIncludeTypeDataCollection xmlIncludeTypes = new XmlIncludeTypeDataCollection();
            xmlIncludeTypes.Add(new XmlIncludeTypeData("shouldNotBeAccessible", typeof(TestingInternal.ShouldNotBeAccessible).AssemblyQualifiedName));

            RuntimeConfigurationView view = new RuntimeConfigurationView(new ConfigurationContext(new ConfigurationDictionary()));
            Type [] collectedTypes = view.CollectTypes(xmlIncludeTypes);

            Assert.AreEqual(1, collectedTypes.Length);
        }
コード例 #5
0
        public void InitializeTest()
        {
            ConfigurationSettings      settings     = GetConfigurationSettings(XmlString);
            ConfigurationSectionData   sectionData  = settings.ConfigurationSections[applConfig1];
            XmlFileStorageProviderData providerData = (XmlFileStorageProviderData)sectionData.StorageProvider;

            providerData.SectionName = applConfig1;
            XmlFileStorageProvider provider = new XmlFileStorageProvider();

            provider.CurrentSectionName = applConfig1;
            RuntimeConfigurationView configurationView = new RuntimeConfigurationView(context);

            provider.Initialize(configurationView);
        }
        public void CannotInvokeNonPublicMethodWhenCallsMadeThroughReflection()
        {
            ReflectionPermission permission = new ReflectionPermission(ReflectionPermissionFlag.TypeInformation);
            permission.Deny();

            XmlIncludeTypeDataCollection xmlIncludeTypes = new XmlIncludeTypeDataCollection();
            xmlIncludeTypes.Add(new XmlIncludeTypeData("shouldNotBeAccessible", typeof(TestingInternal.ShouldNotBeAccessible).AssemblyQualifiedName));

            RuntimeConfigurationView view = new RuntimeConfigurationView(new ConfigurationContext(new ConfigurationDictionary()));
            MethodInfo collectTypes = view.GetType().GetMethod("CollectTypes", BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic, null, new Type[] { typeof(XmlIncludeTypeDataCollection)}, null);
            object returnedTypes = collectTypes.Invoke(view, new object[] { xmlIncludeTypes });
            Type [] collectedTypes = returnedTypes as Type[];

            Assert.AreEqual(1, collectedTypes.Length);
        }
コード例 #7
0
        public void CannotInvokeNonPublicMethodWhenCallsMadeDirectly()
        {
            ReflectionPermission permission = new ReflectionPermission(ReflectionPermissionFlag.TypeInformation);

            permission.Deny();

            XmlIncludeTypeDataCollection xmlIncludeTypes = new XmlIncludeTypeDataCollection();

            xmlIncludeTypes.Add(new XmlIncludeTypeData("shouldNotBeAccessible", typeof(TestingInternal.ShouldNotBeAccessible).AssemblyQualifiedName));

            RuntimeConfigurationView view = new RuntimeConfigurationView(new ConfigurationContext(new ConfigurationDictionary()));

            Type [] collectedTypes = view.CollectTypes(xmlIncludeTypes);

            Assert.AreEqual(1, collectedTypes.Length);
        }
コード例 #8
0
        public void CannotInvokeNonPublicMethodWhenCallsMadeThroughReflection()
        {
            ReflectionPermission permission = new ReflectionPermission(ReflectionPermissionFlag.TypeInformation);

            permission.Deny();

            XmlIncludeTypeDataCollection xmlIncludeTypes = new XmlIncludeTypeDataCollection();

            xmlIncludeTypes.Add(new XmlIncludeTypeData("shouldNotBeAccessible", typeof(TestingInternal.ShouldNotBeAccessible).AssemblyQualifiedName));

            RuntimeConfigurationView view = new RuntimeConfigurationView(new ConfigurationContext(new ConfigurationDictionary()));
            MethodInfo collectTypes       = view.GetType().GetMethod("CollectTypes", BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic, null, new Type[] { typeof(XmlIncludeTypeDataCollection) }, null);
            object     returnedTypes      = collectTypes.Invoke(view, new object[] { xmlIncludeTypes });

            Type [] collectedTypes = returnedTypes as Type[];

            Assert.AreEqual(1, collectedTypes.Length);
        }
コード例 #9
0
        private void SaveAndLoad(RuntimeConfigurationView configurationView)
        {
            FileKeyAlgorithmPairStorageProvider provider = new FileKeyAlgorithmPairStorageProvider();

            provider.Initialize(configurationView);

            provider.Save(DefaultKey);
            KeyAlgorithmPair key = provider.Load();

            Assert.IsNotNull(key);
            Assert.AreEqual(DefaultKey.AlgorithmTypeName, key.AlgorithmTypeName);
            Assert.IsTrue(CryptographyUtility.CompareBytes(DefaultKey.Key, key.Key));
            FileKeyAlgorithmPairStorageProviderData data = (FileKeyAlgorithmPairStorageProviderData)configurationView.GetKeyAlgorithmPairStorageProviderData();

            // If protected, ensure it's protected properly
            if (null != data.DpapiSettings)
            {
                using (FileStream fs = new FileStream(filePath, FileMode.Open, FileAccess.Read))
                {
                    BinaryFormatter formatter    = new BinaryFormatter();
                    bool            deserialized = true;
                    try
                    {
                        KeyAlgorithmPair deserializedKey = (KeyAlgorithmPair)formatter.Deserialize(fs);
                        Assert.IsNotNull(deserializedKey);
                    }
                    catch
                    {
                        deserialized = false;
                    }

                    // Shouldn't deserialize if it's DPAPI protected
                    Assert.IsFalse(deserialized);
                }
            }
        }
コード例 #10
0
        public void ReadAndWriteToEncryptedConfiguration()
        {
            const string sectionName = "MyEncryptedConfig";

            KeyAlgorithmPair keyAlgorithmPair = new KeyAlgorithmPair();
            keyAlgorithmPair.Key = new SymmetricAlgorithmKeyCreator(typeof(RijndaelManaged).AssemblyQualifiedName).GenerateKey();
            keyAlgorithmPair.AlgorithmTypeName = typeof(RijndaelManaged).AssemblyQualifiedName;

            FileKeyAlgorithmPairStorageProvider provider = new FileKeyAlgorithmPairStorageProvider();
            provider.ConfigurationName = "FileKeyAlgorithmPairStorageProviderData";

            using (ConfigurationBuilder builder = new ConfigurationBuilder())
            {
                // change wher the file is
                RuntimeConfigurationView view = new RuntimeConfigurationView(new ConfigurationContext(new NonDisposingWrapper(builder)));

                FileKeyAlgorithmPairStorageProviderData fileData = (FileKeyAlgorithmPairStorageProviderData)view.GetKeyAlgorithmPairStorageProviderData();
                fileData.Path = Path.GetTempFileName();
                provider.Initialize(view);
                provider.Save(keyAlgorithmPair);
                builder.WriteConfiguration(sectionName, data);
                MockConfigurationData myData = (MockConfigurationData)builder.ReadConfiguration(sectionName);
                Assert.AreEqual(myData.ToString(), data.ToString());
                builder.ClearSectionCache();
                myData = (MockConfigurationData)builder.ReadConfiguration(sectionName);
                Assert.AreEqual(myData.ToString(), data.ToString());
            }
        }
コード例 #11
0
 public void CreateTransformer()
 {
     XmlSerializerTransformer xmlTransformer = new XmlSerializerTransformer();
     // just a fake out to test the transformer
     RuntimeConfigurationView configurationView = new RuntimeConfigurationView(Context);
     xmlTransformer.CurrentSectionName = "ApplConfig1";
     xmlTransformer.Initialize(configurationView);
     transformer = xmlTransformer;
 }
コード例 #12
0
 private void SetCurrentDirectory(RuntimeConfigurationView RuntimeConfigurationView)
 {
     if (RuntimeConfigurationView.ConfigurationFile.Length == 0)
     {
         this.currentDirectory = AppDomain.CurrentDomain.BaseDirectory;
     }
     else
     {
         this.currentDirectory = Path.GetDirectoryName(RuntimeConfigurationView.ConfigurationFile);
     }
 }
コード例 #13
0
        internal void AddDeployResources(object input)
        {
            //TODO 1018 Move code to show the settings tab to it's own button
            const string tabName = "Settings";

            FrameworkElement tab = FindTabByName(tabName);

            if (tab != null)
            {
                SetActiveDocument(tab);
            }
            else
            {
                RuntimeConfigurationView runtimeConfigurationView = new RuntimeConfigurationView()
                {
                    DataContext = new RuntimeConfigurationViewModel(((IEnvironmentModel)input))
                };

                AttachedPropertyHelper.SetAttachedProperties(runtimeConfigurationView, tabName);

                Tabs.Add(runtimeConfigurationView);
                SetActiveDocument(runtimeConfigurationView);
            }

            //const string tabName = "Deploy Resources";

            //FrameworkElement tab = FindTabByName(tabName);

            //if (tab != null)
            //{
            //    SetActiveDocument(tab);
            //    Mediator.SendMessage(MediatorMessages.SelectItemInDeploy, input);
            //}
            //else
            //{
            //    var view = new DeployView { DataContext = DeployViewModelFactory.GetDeployViewModel(input) };

            //    AttachedPropertyHelper.SetAttachedProperties(view, tabName);

            //    Tabs.Add(view);
            //    SetActiveDocument(view);
            //}
        }
コード例 #14
0
 public void InitializeTest()
 {
     ConfigurationSettings settings = GetConfigurationSettings(XmlString);
     ConfigurationSectionData sectionData = settings.ConfigurationSections[applConfig1];
     XmlFileStorageProviderData providerData = (XmlFileStorageProviderData)sectionData.StorageProvider;
     providerData.SectionName = applConfig1;
     XmlFileStorageProvider provider = new XmlFileStorageProvider();
     provider.CurrentSectionName = applConfig1;
     RuntimeConfigurationView configurationView = new RuntimeConfigurationView(context);
     provider.Initialize(configurationView);
 }
コード例 #15
0
 public static void SetAttachedProperties(RuntimeConfigurationView view, string tabName)
 {
     UIElementTabActionContext.SetTabActionContext(view, WorkSurfaceContext.Settings);
     UIElementTitleProperty.SetTitle(view, tabName);
     UIElementImageProperty.SetImage(view, "/images/database_save.png");
 }
コード例 #16
0
        private void GetStorageCursor(ConfigurationView configurationView)
        {
            ArgumentValidation.CheckExpectedType(configurationView, typeof(RuntimeConfigurationView));

            runtimeConfigurationView = (RuntimeConfigurationView)configurationView;
        }
コード例 #17
0
        private void SaveAndLoad(RuntimeConfigurationView configurationView)
        {
            FileKeyAlgorithmPairStorageProvider provider = new FileKeyAlgorithmPairStorageProvider();
            provider.Initialize(configurationView);

            provider.Save(DefaultKey);
            KeyAlgorithmPair key = provider.Load();

            Assert.IsNotNull(key);
            Assert.AreEqual(DefaultKey.AlgorithmTypeName, key.AlgorithmTypeName);
            Assert.IsTrue(CryptographyUtility.CompareBytes(DefaultKey.Key, key.Key));
            FileKeyAlgorithmPairStorageProviderData data = (FileKeyAlgorithmPairStorageProviderData)configurationView.GetKeyAlgorithmPairStorageProviderData();
            // If protected, ensure it's protected properly
            if (null != data.DpapiSettings)
            {
                using (FileStream fs = new FileStream(filePath, FileMode.Open, FileAccess.Read))
                {
                    BinaryFormatter formatter = new BinaryFormatter();
                    bool deserialized = true;
                    try
                    {
                        KeyAlgorithmPair deserializedKey = (KeyAlgorithmPair)formatter.Deserialize(fs);
                        Assert.IsNotNull(deserializedKey);
                    }
                    catch
                    {
                        deserialized = false;
                    }

                    // Shouldn't deserialize if it's DPAPI protected
                    Assert.IsFalse(deserialized);
                }
            }
        }
コード例 #18
0
 public static void SetAttachedProperties(RuntimeConfigurationView view, string tabName)
 {
     UIElementTabActionContext.SetTabActionContext(view, WorkSurfaceContext.Settings);
     UIElementTitleProperty.SetTitle(view, tabName);
     UIElementImageProperty.SetImage(view, "/images/database_save.png");
 }
コード例 #19
0
        private void GetStorageCursor(ConfigurationView configurationView)
        {
            ArgumentValidation.CheckExpectedType(configurationView, typeof(RuntimeConfigurationView));

            runtimeConfigurationView = (RuntimeConfigurationView)configurationView;
        }