/// <summary> /// Updates a rule. /// </summary> /// <param name="rule">The rule.</param> public static void UpdateRule(Rule rule) { using (TransactionScope scope = new TransactionScope()) { ConfigurationSourceSection section = GetConfigurationSourceSection(); //get selected source SqlConfigurationSource selectedSource = GetSelectedConfigurationSource(section); //get authorization Provider SecurityConfigurationView securityConfigurationView = new SecurityConfigurationView(selectedSource); SecuritySettings securitySettings = securityConfigurationView.GetSecuritySettings(); AuthorizationRuleProviderData authorizationProviderData = securitySettings.AuthorizationProviders.Get( securityConfigurationView.GetDefaultAuthorizationProviderName()) as AuthorizationRuleProviderData; //add the new rule to the collection authorizationProviderData.Rules.Get(rule.Name).Expression = rule.Expression; SqlConfigurationSourceElement element = GetElement(section.SelectedSource, section.Sources); selectedSource.Save(element.ConnectionString, element.SetStoredProcedure, "securityConfiguration", securitySettings); scope.Complete(); } }
private static AuthorizationRuleProviderData GetAuthorizationProviderData(SecurityConfigurationView securityConfigurationView, SqlConfigurationSource configurationSource, ConfigurationSourceSection section) { //find default authorisation provider - the rules provider return(securityConfigurationView.GetSecuritySettings().AuthorizationProviders.Get( securityConfigurationView.GetDefaultAuthorizationProviderName()) as AuthorizationRuleProviderData); }