代码之家  ›  专栏  ›  技术社区  ›  Dynde

为列表中的新文件自动启用SPAudit

  •  0
  • Dynde  · 技术社区  · 14 年前

    我正在使用moss2007中的审计框架,并且通过编程实现了对网站集中一堆网站中的两个特定列表的审计(这意味着这些网站都有自己的两个列表)。我只启用了更新掩码,因为我只想知道何时更改或添加了某些内容。

    *编辑

    我用于启用审核的代码如下所示:

    foreach (SPSite site in webApp.Sites) {
        foreach (SPWeb website in site.AllWebs) {
           website.Lists["MyList"].Audit.AuditFlags = SPAuditMaskType.Update;
           website.Lists["MyList"].Audit.Update();
        }
    }
    

    SPUserToken sysAdmin = website.Site.SystemAccount.UserToken;
    using (SPSite elevatedSite = new SPSite(website.Site.ID,sysAdmin)) {
        using (SPWeb elevatedWeb = elevatedSite.OpenWeb(website.ID)) {
            SPAuditQuery auditQuery = new SPAuditQuery(elevatedSite);
            auditQuery.SetRangeStart(myDatetime);
            auditQuery.RestrictToList(elevatedWeb.Lists["MyList"]);
            listChanges = elevatedWeb.Lists["MyList"].Audit.GetEntries(auditQuery);
        }
    }
    

    我意识到我限制在这里列出,但当我没有我从其他网站上的名单以及改变。即使从逻辑上我假设我只从我称为“GetEntries”的列表中得到更改。。。

    谢谢

    2 回复  |  直到 14 年前
        1
  •  1
  •   Vladi Gubler    14 年前

    如果库已启用审核,则将审核新项。我不知道有任何特定于文档的审计

        2
  •  0
  •   Rich Ross    14 年前

    link 解释了如何做到这一点。他们使用一个事件处理程序使其工作。我知道你提到你不想这样做,但这是什么需要自动跟踪文件事件。在文档库上设置审核掩码类型似乎只跟踪DL事件,而不是单个项。