科技行者

行者学院 转型私董会 科技行者专题报道 网红大战科技行者

知识库

知识库 安全导航

至顶网软件频道SharePoint中用于审核日志的自定义实体的编写

SharePoint中用于审核日志的自定义实体的编写

  • 扫一扫
    分享文章到微信

  • 扫一扫
    关注官方公众号
    至顶头条

SharePont提供了非常灵活的审核功能,允许我们查看用户对网站集中内容所作的操作。比如,我们可以自动审核用户的查看,更新,删除列表项或文档的操作,也可以审核用户查看站点中页面的操作。

作者:sunmoonfire 来源:blog 2007年9月3日

关键字: 实体 日志 SharePoint SharePoint2007 Office

  • 评论
  • 分享微博
  • 分享邮件
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文档部分的数据。

    • 评论
    • 分享微博
    • 分享邮件
    邮件订阅

    如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。

    重磅专题
    往期文章
    最新文章