Как я могу получить доступ к журналу аудита для пользователей без прав администратора? - PullRequest
0 голосов
/ 01 марта 2011

Я создаю веб-часть для SharePoint 2010 и обнаружил, что пользователи без прав администратора получают сообщение об ошибке Access Denied, когда я выполняю следующий код (ошибка выдается в последней строке):

SPAuditQuery wssQuery = new SPAuditQuery(web.Site);
wssQuery.RestrictToUser(web.CurrentUser.ID);
wssQuery.AddEventRestriction(SPAuditEventType.View);
wssQuery.RestrictToList(SPContext.Current.List);

SPAuditEntryCollection auditCol;
auditCol = web.Site.Audit.GetEntries(wssQuery);

Как разрешить пользователям без прав администратора получать доступ к этому журналу из веб-части? Потому что мне нужно фильтровать по пользователям без прав администратора, даже если в этот момент вошел пользователь без прав администратора.

1 Ответ

1 голос
/ 02 марта 2011

.NET Reflector сообщает, что метод SPAuditEntryCollection GetEntries(SPAuditQuery query) выполняет следующую проверку перед попыткой получить данные:

if (!this.m_Web.CurrentUser.IsSiteAdmin)
{
    throw new UnauthorizedAccessException();
}

Вы можете рассмотреть:

  1. прямой запрос таблицы dbo.AuditData ( прямой доступ к базе данных SharePoint, как правило, не рекомендуется, но доступ только для чтения, поэтому он не должен вызывать проблем ),

  2. создание пользовательского веб-сервиса SharePoint - это должно быть просто, потому что все, что ему нужно, это выполнить метод GetEntries и вернуть результат.

...