public Dictionary <string, PermissionRuleContextCollection> ReadRulesFromConfiguration()
        {
            Dictionary <string, PermissionRuleContextCollection> ruleContextLookup = new Dictionary <string, PermissionRuleContextCollection>();

            ApplicationPermissionConfigurationSettings config = null;

            try
            {
                config = (ApplicationPermissionConfigurationSettings)System.Configuration.ConfigurationManager.GetSection
                             ("appPermissionConfiguration");
            }
            catch (Exception) { }

            if (config != null)
            {
                // process the core rules
                foreach (CorePermissionConfigurationElement configElement in config.CorePermissionConfigurationItems)
                {
                    PermissionRuleContext ruleContext = ConvertFromConfiguration(configElement);
                    AddRuleStateToLookup(ruleContextLookup, ruleContext);
                }

                // process the custom rules
                foreach (CustomPermissionConfigurationElement configElement in config.CustomPermissionConfigurationItems)
                {
                    PermissionRuleContext ruleContext = ConvertFromConfiguration(configElement);
                    AddRuleStateToLookup(ruleContextLookup, ruleContext);
                }
            }

            return(ruleContextLookup);
        }
示例#2
0
        public void CustomConfigurationTest()
        {
            object uut = System.Configuration.ConfigurationManager.GetSection("appPermissionConfiguration");

            Assert.IsNotNull(uut);
            Assert.IsInstanceOfType(uut, typeof(ApplicationPermissionConfigurationSettings));

            ApplicationPermissionConfigurationSettings config = (ApplicationPermissionConfigurationSettings)uut;

            foreach (object item in config.CustomPermissionConfigurationItems)
            {
                Assert.IsNotNull(item);
                Assert.IsInstanceOfType(item, typeof(CustomPermissionConfigurationElement));
            }
        }