当以编程方式尝试进行web.config修改时,出现SecurityException,“拒绝访问”。使用SPWebConfigModification的SecurityException
代码紧跟this example:
public override void FeatureActivated(SPFeatureReceiverProperties properties)
{
// create modification
SPSecurity.RunWithElevatedPrivileges(delegate()
{
SPWebConfigModification m = new SPWebConfigModification();
m.Path = "configuration/SharePoint/SafeControls";
m.Name = string.Format(CultureInfo.InvariantCulture, "SafeControl[@Assembly='{0}'][@Namespace='{1}'][@TypeName='*'][@Safe='True']", ADSWebPart.GetAssemblyFullName(), ADSWebPart.GetNamespace());
m.Sequence = 0;
m.Owner = SPContext.Current.Web.CurrentUser.Name;
m.Type = SPWebConfigModification.SPWebConfigModificationType.EnsureChildNode;
m.Value = string.Format(CultureInfo.InvariantCulture, "<SafeControl Assembly='{0}' Namespace='{1}' TypeName='*' Safe='True' />", ADSWebPart.GetAssemblyFullName(), ADSWebPart.GetNamespace());
// apply modification
SPWebService service = SPWebService.ContentService;
service.WebConfigModifications.Add(m);
service.Update();
service.ApplyWebConfigModifications();
});
}
(我开始没有调用RunWithElevatedPrivileges(),得到了同样的异常,然后继续封闭越来越多的代码多达封闭FeatureActivated()的所有机构。)
想法欢迎,谢谢。
谢谢,它的工作。我完全错过了这个选项:-) – Ariel 2010-02-16 13:21:10