WSSv3有一个很强大基础结构,专门用来审核用户对页面,文档和列表项的访问。您可以在整个站点集上启用审核功能,但是如果可以将启用审核的粒度更小,无疑会对我们的编程工作更有利。
WSSv3有一个很强大基础结构,专门用来审核用户对页面,文档和列表项的访问。您可以在整个站点集上启用审核功能,但是如果可以将启用审核的粒度更小,无疑会对我们的编程工作更有利。比如,您或许希望可以在一个特定的列表或文档库上启用审核。事实上,我们可以做到的远不只于此,我们甚至可以在某个特定的列表项或文档上启用审核。
如何通过编程方式去实现呢?下面将以代码示例的方式演示给大家。
在WSS对象模型中,SPList,SPListItem对象都有一个Audit属性,用于标示审核的配置情况。下面的例子展示了如何针对特定的两个事件在一个文档库上启用审核。
c#
SPSite siteCollection = SPContext.Current.Site;
SPWeb site = siteCollection.RootWeb;
SPList docLib = site.Lists("Presentations");
// Turn on auditing flags.
docLib.Audit.AuditFlags = SPAuditMaskType.View |
SPAuditMaskType.ChildDelete;
docLib.Audit.Update();
大家一定注意使用的操作符号,按位或,"|"
前面的例子展示了如何配置启用当有查看或Child(是指文件夹吗?)被删除时的审核,还有许多其他的审核项可供使用。下面是SPAuditMaskType的所有用于控制文档库会发生的各种审核类事件的枚举值。
SPAuditMaskType.ChildDelete
SPAuditMaskType.Delete
SPAuditMaskType.ProfileChange
SPAuditMaskType.SchemaChange
SPAuditMaskType.SecurityChange
SPAuditMaskType.View
而下面的枚举值是SDK中的一个完整的列表。
SPAuditMaskType.All
SPAuditMaskType.CheckIn
SPAuditMaskType.CheckOut
SPAuditMaskType.ChildDelete
SPAuditMaskType.Copy
SPAuditMaskType.Delete
SPAuditMaskType.Move
SPAuditMaskType.None
SPAuditMaskType.ProfileChange
SPAuditMaskType.SchemaChange
SPAuditMaskType.Search
SPAuditMaskType.SecurityChange
SPAuditMaskType.Undelete
SPAuditMaskType.Update
SPAuditMaskType.View
SPAuditMaskType.Workflow
希望会给大家更多的提示。
在WSS中,审核支持配置于站点集之上。您可以在整个站点集上通过对SPSite对象的Audit属性编程启用审
核。但是,这种做法对于一些大的网站集来说可能不会有效,可以想象这将意味着会产生很大的信息量。
注意:当您设置了一个文档库的审核标记,您只是针对那些发生在文档库本身之上的事件来启动审核。并没有设置这些审核标记到文档库里面的文档。比如,当您查看整个文档库,这个事件会记录下来,但是当您更新文档库里的某个文档,这个事件并不记录。
WSS对象模型中的许多不同类型的对象都是可以审核的,包括SPSite,SPWeb,SPList和SPListItem.每个对象类型的Audit属性都可以通过使用SPAuditMaskType枚举值进行配置,正如上面所展示的那样。您可以使用一个SPAuditMaskType.All来启用所有事件上的审核。您也可以通过使用按位或操作符,来灵活的组合出自己项目所需要的特定审核配置。
需要注意的一点,只有在SPSite对象上进行的审核配置会影响到站点中的其他对象。其他在其子对象如SPWeb,SPList,SPDocumentLibrary上的设置值并不会影响其下的对象。因此,如果您的项目需要比SPSite级别更细粒度的配置审核,您可以使用SPListItem类来配置特定列表项或文档上的Audit属性。