我正在使用 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”的列表中得到了更改......
谢谢