【问题标题】:SharePoint 2010 Acces Denied on creating new web from codebehindSharePoint 2010 访问被拒绝从后面的代码创建新网站
【发布时间】:2013-02-06 15:57:14
【问题描述】:

我有一个共享点问题。我在列表中有一个事件处理程序,每当有人在列表中添加新项目时,我想创建一个包含所需详细信息的新网站。当不是网站集管理员的不同用户添加该项目时,就会出现问题。在 Web.Webs.Add() 方法上我得到错误:

Access is denied. (Exception from HRESULT: 0x80070005 (E_ACCESSDENIED)). 

请注意,我使用的是 SPSecurity.RunWithElevatedPrivileges 委托。

这是一个代码示例:

public override void ItemAdded(SPItemEventProperties properties)
{
    SPSecurity.RunWithElevatedPrivileges(delegate()
    {
            string url = "the url";
            if (Array.IndexOf(properties.Web.Webs.Names, url) >= 0)
            {
              properties.Web.Webs.Delete(url);
            }
            SPWeb newWeb = properties.Web.Webs.Add(url, "title", "description", properties.Web.Language, "STS#1", false, false);
    });
}

谢谢。

【问题讨论】:

    标签: sharepoint access-denied elevated-privileges


    【解决方案1】:

    我明白了。问题是我调用的网络没有被提升,所以我这样做了:

     public override void ItemAdded(SPItemEventProperties properties)
            {
                SPWeb web = properties.Web;
                SPListItem currentItem= properties.ListItem;
    
                SPSecurity.RunWithElevatedPrivileges(delegate()
                {
                    using (SPSite site = new SPSite(web.Site.ID))
                    {
                        using (SPWeb elevWeb = site.OpenWeb(web.ID))
                        {
                            SPList elevList = ListUtils.GetList(elevWeb, "list");
                            SPListItem elevItem = elevList.Items[currentItem.UniqueId];
                            elevWeb.AllowUnsafeUpdates = true;
                            string url = "the url";
                            if (Array.IndexOf(elevWeb.Webs.Names, url) >= 0)
                            {
                                elevWeb.Webs.Delete(url);
                            }
                            SPWeb newWeb = elevWeb.Webs.Add(url, "title", "description", elevWeb.Language, "STS#1", false, false);
                        }
                    }
                });
            } 
    

    【讨论】:

      猜你喜欢
      • 2016-10-13
      • 2018-05-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-10-01
      • 2011-05-21
      • 2015-09-25
      相关资源
      最近更新 更多