Почему он не вошел в функцию ItemAdded при использовании RunWithElevatedPrivileges для пользователей с ограниченным доступом в приемнике событий? - PullRequest
0 голосов
/ 05 июля 2019

У меня есть получатель события списка и некоторые обновления в другом списке в функции ItemAdded.поскольку он не работает для пользователей с ограниченным доступом, поэтому я пытаюсь использовать SPSecurity.RunWithElevatedPrivileges для предоставления доступа таким пользователям.Но это все еще не работает для пользователей с ограниченным доступом.Я пытаюсь записать, что происходит в моей функции.шокирующе, но моя функция ItemAdded не работала даже в первой строке (LoLogInfo («событие @ получатель @ запуск!»);).Я в этом уверен, потому что я проверил файл журнала sharepoint. Что со мной не так?вот мой код:

public override void ItemAdded(SPItemEventProperties properties)
{
    LoLogInfo("event@receiver@ starting!");
    SPSecurity.RunWithElevatedPrivileges(delegate ()
    {
        LogInfo("event@receiver@ first step!");
        using (SPSite site = new SPSite(properties.SiteId))
        {
            LogInfo("event@receiver@ second step!");
            using (SPWeb web = site.OpenWeb(properties.Web.ID))
            {
                LogInfo("event@receiver@ third step!");
                SPList activeList = web.Lists.TryGetList(properties.List.Title);
                SPList finalList = web.Lists[FinalListName];
                web.AllowUnsafeUpdates = true;
                SPListItem finalListItem = finalList.AddItem();
                LogInfo("event@receiver@ forth step!");
                //some other code here
                web.AllowUnsafeUpdates = false;
                }
         }                
    });
}

1 Ответ

0 голосов
/ 07 июля 2019

код в порядке. Если получатель события не запускается, это означает, что он не прикреплен к списку.

Пожалуйста, проверьте, если:

  1. пожалуйста, включите


base.ItemAdded(properties);

в начале (перед вашим пользовательским кодом) функции переопределения, как лучший метод.

  1. в получателе события. Вы должны иметь файл elements.xml, проверьте, установлено ли событие ItemAdded. Должен получатель узел с типом ItemAdded enter image description here

  2. проверьте, включен ли приемник событий в компоненты компонента (иногда они не включены и не развернуты вместе с функцией). Функцией должен быть веб-сайт или сайт

  3. развернуть проект (возможно, возможно, отменить проект и запустить развертывание с нуля)

  4. после развертывания проверьте, активирована ли эта функция.

Обратите внимание, что при добавлении нового события в приемник событий необходимо всегда повторно развертывать проект и активировать функцию.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...