zoukankan      html  css  js  c++  java
  • MSDN Visual系列:读取SharePoint审计日志中的信息

    原文:http://msdn2.microsoft.com/en-us/library/bb466223.aspx

    SharePoint提供了一个强大的审计基础架构,用于对操作列表项,文档,或页面等用户行为进行审核。然而,我们必须通过编写自定义代码的方式利用这一审计架构。因为默认情况下,没有哪个功能(feature)利用到它。前面的几篇MSDN Visual系列文章介绍了如何启用审计。这里我们要学习的是如何从审计日志中获取信息,以便将用户的活动信息展示或汇总到我们的自定义SharePoint解决方案中。

    读取审计日志,要先从一个特定的网站集范围开始。在从当前网站集中读取审计信息前,我们首先要创建一个SPAuditQuery对象,并用一个SPSite对象初始化它。然后,我们必须在一个允许审计的对象(比如网站集本身)上调用GetEntries方法,并传递一个SPAuditQuery对象作参数。调用GetEntries会返回一个SPAuditEntryCollection对象。接下来,我们就可以通过在代码中用foreach循环来获取该审计日志中的实体(entry)信息了。

    SPSite siteCollection = SPContext.Current.Site;
    SPAuditQuery wssQuery 
    = new SPAuditQuery(siteCollection);
    SPAuditEntryCollection auditCol;
    auditCol 
    = siteCollection.Audit.GetEntries(wssQuery);
    // enumerate through audit log and read entries
    foreach (SPAuditEntry entry in auditCol) {
        
    // inspect entry
    }

    上面的示例中调用了SPSite对象上的GetEntries方法,来获取整个网站集上的审计实体。我们也可以通过在网站集内的其他审计对象上调用GetEntries方法来缩小范围,比如在网站(SPWeb),列表或文档库(SPList),或列表项、文档(SPListItem)上。

    在我们调用GetEntries方法前,还可以先为SPAuditQuery对象指定些参数,只要调用其本身的一些方法就可以。比如,我们可以调用AddEventRestiction以便审计查询只返回特定类型的审计实体,如只返回更新或删除操作相关的审计实体。我们可以调用RestrictToList方法返回特定的一个列表或文档库上的审计实体。我们可以调用RestrictToUser方法返回某用户相关的审计实体。甚至,我们可以调用SetRangeStart和SetRangeEnd来返回某个时间段内的审计信息。

    需要注意,读取审计日志是一个受限制的操作,需要站点管理员权限。所以,上面展示的代码只有在当前用户是站点管理员时才能成功运行。如果当前用户没有该权限,比如网站设计人员或读者,运行该代码就会报拒绝访问错误。如果您想给这些没有管理权限的用户显示审计信息,就需要用前一篇文章中代码提升权限的方法,以便使上述代码可以顺利执行。

    查看视频
  • 相关阅读:
    MyBatis(十)插件开发 之 插件运行原理
    通用Mapper(二)使用通用 Mapper
    通用Mapper(十四)通用Mapper接口大全
    通用Mapper(十三)通用Mapper原理
    通用Mapper(十二)通用Mapper配置项
    通用Mapper(十)二级缓存
    通用Mapper(九)通用 Mapper 接口扩展
    Linux安装与部署SonarQube
    Sonarqube分析代码并导出PDF分析报告
    SVN update失败,cleanup后再update
  • 原文地址:https://www.cnblogs.com/Sunmoonfire/p/776049.html
Copyright © 2011-2022 走看看