MSDN Visual系列:SharePoint中用于审计日志的自定义实体的编写
原文:http://msdn2.microsoft.com/en-us/library/bb466221.aspx
SharePont提供了非常灵活的审计功能,允许我们查看用户对网站集中内容所作的操作。比如,我们可以自动审计用户的查看,更新,删除列表项或文档的操作,也可以审计用户查看站点中页面的操作。默认的审计机制一个重要的限制是,我们不能对部署到\LAYOUTS目录下的应用程序页面进行审计。
如果想要对用户访问自定义页面的操作进行审计,我们必须通过编写自定义的审计实体(audit entries),来扩展SharePoint的审计日志。我们可以将自定义审计实体编写在任何允许审计的对象的上下文中,如SPSite,SPWeb,SPList或SPListItem。
允许审计的对象,如SPSite,SPWeb,SPList或SPListItem都包括了一个Audit属性。这个属性包括了对SPAudit对象的引用。该对象包括一个名为WriteAuditEvent的方法。下面的示例是在一个自定义应用程序页面中编写的一个自定义审计实体,用于SPListItem对象级的审计。
SPSite siteColl = SPContext.Current.Site; SPWeb site = SPContext.Current.Web; string ListId = Request.QueryString["ListId"]; string ItemId = Request.QueryString["ItemId"]; SPList list1 = site.Lists[new Guid(ListId)]; SPListItem item1 = list1.Items.GetItemById(Convert.ToInt32(ItemId)); item1.Audit.WriteAuditEvent(SPAuditEventType.Custom, "CustomViewAuditEvent", "");
在我们通过WriteAuditEvent方法编写了自定义审计实体,用户使用自己的标识信息执行该代码后,SharePoint会纪录当前用户的名称。这就意味着我们应该在调用WriteAuditEvent之前的代码中避免写那些提升权限或模拟用户的代码,以免导致错误的用户与审核实体关联在一起。
当我们调用WriteAuditEvent时,第一个参数是个枚举值,类型为SPAuditEventType,该参数指定我们创建的审计实体的类型。第二个参数是个字符串,用于指定审核源的名字。
item1.Audit.WriteAuditEvent(SPAuditEventType.Delete, "MySource", "");
传递给WriteAuditEvent的第三个参数是个可以随意写任何内容的字符串,我们可以用来传递任何想要纪录到自定义审计实体的日志中的信息。我们可以传递一个特定命名空间下的XML文档,这样,基于特定的用户操作,就可以在自定义的审计实体所对应的审计日志中纪录下任何类型的信息,只要我们愿意。
item1.Audit.WriteAuditEvent(SPAuditEventType.Custom, "MySource", "<MyData>MyValue</MyData>");
当我们在实体的审计日志中写入自定义的XML文档时,必然决定我们还需要补充一部份代码,用于阅读这些审计实体并解释出其中XML文档部分的数据。
查看视频
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 零经验选手,Compose 一天开发一款小游戏!
· 一起来玩mcp_server_sqlite,让AI帮你做增删改查!!