将动态字段添加到共享点中的 SPList 时出现问题

发布于 2024-09-10 14:28:07 字数 770 浏览 8 评论 0原文

我们在 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();
    }
  }
}

在将项目添加到列表的第 4 行中,我们收到此错误:“当前不允许对 GET 请求进行更新。要允许对 GET 进行更新,请在 < 上设置 'AllowUnsafeUpdates' 属性em>SPWeb”。

然后我们在将项目添加到列表之前添加了这一行:

web.AllowUnsafeUpdates = true;

现在我们收到此错误: “您当前登录的身份为:[域]\用户名”。 以其他用户身份登录。

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

web.AllowUnsafeUpdates = true;
list.Fields.Add("Office", SPFieldType.Text, false);
list.Update();

We have the following code in a webpart:

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();
    }
  }
}

in the 4th line where we add a item to the list we get this error: "Updates are currently disallowed on GET requests. To allow updates on a GET, set the 'AllowUnsafeUpdates' property on SPWeb".

Then we added this line before adding the item to the list:

web.AllowUnsafeUpdates = true;

Now we are getting this error:
"You are currently signed in as: [domain]\username".
Sign in as a different user.

The account that we are using have administrative access too.
Any idea how we can get the following code executing:

web.AllowUnsafeUpdates = true;
list.Fields.Add("Office", SPFieldType.Text, false);
list.Update();

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

安静被遗忘 2024-09-17 14:28:07

让它按以下方式工作:

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();
        }
      }
    }
});

需要以完全控制权限运行代码:)
但我们不应该这样写所有的鳕鱼。

Got it working the following way:

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();
        }
      }
    }
});

Needed to run the codes with Full Control rights :)
But we shouldn't be writings all the cods this way.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文