首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用SPWebConfigModification的SecurityException

使用SPWebConfigModification的SecurityException
EN

Stack Overflow用户
提问于 2010-02-16 01:15:20
回答 4查看 1.4K关注 0票数 2

当我试图以编程方式修改web.config时,我得到了一个SecurityException,“访问被拒绝”。

代码紧跟this example

代码语言:javascript
复制
    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()的所有主体。)

欢迎有想法,谢谢。

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2010-02-16 16:02:02

我没有按要求回答您的问题,但是您为什么要使用Feature receiver来添加SafeControl条目?

添加SafeControl条目的“正确”方法是将这些条目嵌入到您的解决方案的相应manifest.xml中,如下所示:

代码语言:javascript
复制
<Assembly Location="MyLib.dll" DeploymentTarget="WebApplication">
  <SafeControls>
    <SafeControl Assembly="MyLib, Version=1.0.0.0, Culture=neutral, PublicKeyToken=4489c7aa5341e32c" Namespace="MyNs" TypeName="*" Safe="True" />
  </SafeControls>
</Assembly>
票数 3
EN

Stack Overflow用户

发布于 2010-02-16 02:14:06

出于好奇,web.config是否设置为只读?您是否检查了inetpub中web目录的文件系统权限?

另外,这是在Web应用程序级别或更低的级别激活的吗?

票数 0
EN

Stack Overflow用户

发布于 2010-02-16 19:41:04

而不使用SPContext.Current.Web.CurrentUser.Name;

尝试按照此处的说明模拟SystemAccount:http://blackninjasoftware.com/2009/04/09/how-to-programmatically-impersonate-users-in-sharepoint/

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2267648

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档