SharePoint 2010 : Adding Nested web.config entries using the SPWebConfigModification
In SharePoint 2010, you can’t change the correctly the web.config modification entries because we got a new security feature called “RemoteAdministraorAccessDenied” which is by default set to true.
While creating the nested the entries in the web.config I faced two issues :-
Firstly, I resolved it using the setting the RemoteAdministratorAccessDenied to false.
1: SPWebService webservice = SPWebService.ContentService;
2: webservice.RemoteAdministratorAccessDenied = false;
3:
4: webservice.Update();
5: Console.WriteLine("Navdeep Done");
Secondly, I have written the following code in which I selected “EnsureChildNode” rather using the “EnsureSection” in the modification type.
For e.g. if you would like to add a new section group in the ConfigSection, you have to add the Section group first then you have to provide the XPath to the ParentNode which “configuration/configSections/sectionGroup[@name='CustomURLRewrite']” in my case to add a nested node in the web.config.
1: SPWebApplication webApp = new SPSite("https://blre3r08-12b:7000/Pages/default.aspx").WebApplication;
2:
3: SPWebConfigModification modification = new SPWebConfigModification("CustomURLRewrite", "configuration/configSections");
4: modification.Owner = "SimpleSampleUniqueOwnerValue";
5: modification.Sequence = 0;
6: modification.Type = SPWebConfigModification.SPWebConfigModificationType.EnsureChildNode;
7: modification.Value = "<sectionGroup name='CustomURLRewrite'></sectionGroup>";
8:
9: // Add my new web.config modification.
10: webApp.WebConfigModifications.Add(modification);
11:
12: SPWebConfigModification modification1 = new SPWebConfigModification("CustomURLRewrite", "configuration/configSections/sectionGroup[@name='CustomURLRewrite']");
13: modification1.Owner = "SimpleSampleUniqueOwnerValue";
14: modification1.Sequence = 1;
15: modification1.Type = SPWebConfigModification.SPWebConfigModificationType.EnsureChildNode;
16: modification1.Value = "<section name='navdeep' type='Microsoft.SharePoint.ApplicationRuntime.SafeControlsConfigurationHandler, Microsoft.SharePoint, Version=14.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c' />";
Member name
Description
EnsureChildNode
Specifies that the web.config modification must ensure a child node of the node to which the XPath expression points. Value = 0.
EnsureAttribute
Specifies that the web.config modification must ensure the value of a particular attribute. Value = 1.
EnsureSection
Ensures a singleton node. This node is only written once, even if multiple entities register multiple instances of EnsureSection to ensure a single section. Value = 2.
Comments
- Anonymous
November 23, 2010
SPWebService webservice = SPWebService.ContentService; 2: webservice.RemoteAdministratorAccessDenied = false; throughs access denied error