Sharepoint 2010 我如何才能访问非管理员用户的审核日志?

Sharepoint 2010 我如何才能访问非管理员用户的审核日志?,sharepoint-2010,web-parts,Sharepoint 2010,Web Parts,我正在为SharePoint 2010构建一个Web部件,我发现非管理员用户在执行以下代码时收到拒绝访问错误消息(错误出现在最后一行): 如何允许非管理员用户从web部件访问此日志?因为我需要按非管理员用户进行筛选,即使此时非管理员用户已登录。.NET Reflector告诉我,SPAuditEntryCollection GetEntries(SPAuditQuery query)方法在尝试检索数据之前执行以下检查: if (!this.m_Web.CurrentUser.IsSiteAdmi

我正在为SharePoint 2010构建一个Web部件,我发现非管理员用户在执行以下代码时收到
拒绝访问
错误消息(错误出现在最后一行):


如何允许非管理员用户从web部件访问此日志?因为我需要按非管理员用户进行筛选,即使此时非管理员用户已登录。

.NET Reflector告诉我,
SPAuditEntryCollection GetEntries(SPAuditQuery query)
方法在尝试检索数据之前执行以下检查:

if (!this.m_Web.CurrentUser.IsSiteAdmin)
{
    throw new UnauthorizedAccessException();
}
你可以考虑:

  • 直接查询
    dbo.AuditData
    表(通常不鼓励直接访问SharePoint数据库,但您将进行只读访问,因此不会导致任何问题)

  • 创建自定义SharePoint Web服务-这应该很简单,因为它只需执行
    GetEntries
    方法并返回结果


  • 你有没有试过用提升的Previledges将你的代码放在RunwithLevelatedPreviledges中?没有,没有事先做任何事情…你认为这可能有效吗?好吧,这是解决这个问题的最佳方案,如果你愿意,请自己将其作为解决方案发布。这听起来很合理…我会尝试找到更好的解决方案,但同时我想我会尝试这两种方法中的任何一种。谢谢
    if (!this.m_Web.CurrentUser.IsSiteAdmin)
    {
        throw new UnauthorizedAccessException();
    }