Проблема добавления динамического поля в SPList в sharepoint - PullRequest
1 голос
/ 21 июля 2010

У нас есть следующий код в веб-части:

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 »в SPWeb ».

Затем мы добавили эту строку перед добавлением элемента в список:

web.AllowUnsafeUpdates = true;

Теперь мы получаем эту ошибку: Msgstr "Вы в настоящее время вошли как: [домен] \ имя пользователя ". Войдите как другой пользователь.

Используемая нами учетная запись также имеет административный доступ. Любая идея, как мы можем получить следующий код:

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

1 Ответ

1 голос
/ 22 июля 2010

Получилось так:

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

Необходим для запуска кодов с правами полного доступа :) Но мы не должны писать все коды таким образом.

...