我正在使用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”......
由于
答案 0 :(得分:1)
如果库已启用审核,则将审核新项目。我不知道任何特定于文档的审核
答案 1 :(得分:0)
回复这个问题有点晚了,但是如果其他人发现这个帖子,这里还有一些额外的信息。
可以在文档级别跟踪审核事件。这个link解释了如何做到这一点。他们使用事件处理程序使其工作。我知道你提到你不想这样做,但这是自动跟踪文档事件所需要的。在文档库上设置审计掩码类型似乎只跟踪DL事件,而不是单个项目。