代码之家  ›  专栏  ›  技术社区  ›  Rahatur

在sharepoint中向SPList添加动态字段时出现问题

  •  1
  • Rahatur  · 技术社区  · 16 年前

    Web部件中有以下代码:

    using (SPSite site = new SPSite("http://localhost/"))
    {
      using (SPWeb web = site.OpenWeb())
      {
        SPList list = web.SiteUserInfoList;
        if (!list.Fields.ContainsField("Office"))
        {
            list.Fields.Add("Office", SPFieldType.Text, false);
            list.Update();
        }
      }
    }
    

    SPWeb网站 ".

    web.AllowUnsafeUpdates = true;
    

    现在我们得到这个错误: “您当前的登录身份是: [域]-用户名 以其他用户身份登录。

    我们使用的帐户也具有管理权限。 知道如何执行以下代码吗

    web.AllowUnsafeUpdates = true;
    list.Fields.Add("Office", SPFieldType.Text, false);
    list.Update();
    
    1 回复  |  直到 16 年前
        1
  •  1
  •   Rahatur    16 年前

    让它按以下方式工作:

    SPSecurity.RunWithElevatedPrivileges(delegate()
    {
        using (SPSite site = new SPSite(web.Site.ID))
        {
          using (SPWeb web = site.OpenWeb())
          {
            SPList list = web.SiteUserInfoList;
            if (!list.Fields.ContainsField("Office"))
            {
                list.Fields.Add("Office", SPFieldType.Text, false);
                list.Update();
            }
          }
        }
    });
    

    需要运行具有完全控制权限的代码:)

    推荐文章