ABP文档 审计日志
文档目录
本节内容:
简介 维基百科:“一个审计追踪(也叫审计日志)是一个安全相关的时序记录、记录组、和/或记录源和目标,作为任何时候一个特殊操作带来影响的一序列活动的书面文件”。 ABP提供一个基础框架来自动记录所有与应用的交互,它能记录有意的方法调用和调用者信息与参数。 基本上,保存的字段有:相关的租户id,调用者id,被调用的服务名(被调用方法的类名),被调用的方法名,执行参数(序列化成Json),执行时间,执行时长(毫秒),客户端IP,客户端电脑名和异常(如果方法抛出一个异常)。 有了这些信息,我们不仅能知道谁做了操作,也能测量应用的性能和观察异常,甚至更多,如你可以统计你应用的使用频次。 审计系统使用IAbpSeesion来获取当前UserId和TenantId。 应用服务、Mvc控制器、Web Api和Asp.net Core方法默认情况下被自动审计。
配置 为配置审计,你可以在你的模块的PreInitialize方法里使用Configuration.Auditing属性。审计默认可用,你可以用如下方式禁用它: public class MyModule : AbpModule { public override void PreInitialize() { Configuration.Auditing.IsEnabled = false; } //... }
这里有一个审计配置列表:
Selectors是一个谓词列表,用其它类型来保存审核日志,一个选择器有一个唯一的名称和一个谓词,在这个列表里唯一默认的选择器是用来选择应用服务类的,它的定义如下所示: Configuration.Auditing.Selectors.Add( new NamedTypeSelector( "Abp.ApplicationServices", type => typeof (IApplicationService).IsAssignableFrom(type) ) );
你可在你的模块的PreInitialize方法里添加自己的选择器,同样,如果你不想为应用服务保存审计日志,可通过名称移除选择器,这就是为什么需要一个唯一的名称的原因(如果你想,可以使用简单的Linq在Selector里找到一个选择器,并移除它)。 注意:除了标准的审计配置,Mvc和Asp.net Core模块为Action定义了启用/禁用审计日志的配置。
通过特性启用/禁用 虽然你可以通过配置选择审计类,但你可以为一个单独的类、方法使用Audited和DisableAuditing特性,例如: [Audited] public class MyClass { public void MyMethod1(int a) { //... } [DisableAuditing] public void MyMethod2(string b) { //... } public void MyMethod3(int a, int b) { //... } }
除了MyMethod2,MyClass类的其它方法都被审计了,因为MyMethod2显式禁用了审计,Audited特性可用在一个方法上,只对关心的方法进行审计。 DisableAuditing可用在一个DTO的一个单独的属性上,因此,你可以在审计日志里隐藏敏感数据,例如密码。
注意
(编辑:海南站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |