0

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

但是,我只能在添加某些内容时使用我当前的设置进行记录。为了允许查看列表项的更改,我知道列表项本身必须启用审核。但是在向列表中添加新项目时,如何自动为该项目启用审核?如果可能的话,我宁愿避免创建一个事件接收器来完成这个。

*编辑

我用来启用审计的代码如下所示:

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”的列表中得到了更改......

谢谢

4

2 回答 2

1

如果图书馆启用了审核,则将审核新项目。我不知道有任何特定于文档的审核

于 2010-08-17T12:05:25.760 回答
0

回复这个有点晚了,但这里有一些额外的信息,以防其他人找到这篇文章。

可以在文档级别跟踪审计事件。这个链接解释了它是如何完成的。他们使用事件处理程序使其工作。我知道您提到您不想这样做,但这是自动跟踪文档事件所需要的。在文档库上设置审计掩码类型似乎只跟踪 DL 事件,而不是单个项目。

于 2011-01-11T19:57:01.933 回答