基于DDD的现代ASP.NET开发框架--ABP系列之19、ABP应用层——审计
ABP是“ASP.NET Boilerplate Project (ASP.NET样板项目)”的简称。 ABP的官方网站:http://www.aspnetboilerplate.com ABP在Github上的开源项目:https://github.com/aspnetboilerplate 维基百科定义:审计跟踪(也称为审核日志)是一个安全相关的时间顺序记录,记录这些记录的目的是为已经影响在任何时候的详细操作,提供程序运行的证明文件记录、源或事件。 ABP提供了能够为应用程序交互自动记录日志的基础设施,它能记录你调用的方法的调用者信息和参数信息。从根本上来说,存储区域包含:
审计系统使用IAbpSession接口来获取当前用户Id和租户ID。
配置可以在你的模块初始化方法(PreInitialize)中使用Configuration.Auditing的属性来配置审计,Auditing属性默认是启用状态(即true)。你可以禁用它,如下图所示: public class MyModule : AbpModule //... 以下是审计配置的属性:
正如你所看到的,审计系统单独为mvc控制器提供了审计配置使之可以使用不同的方法来使用它。 Selectors是一个断言(推断类型)选择器列表,用于选择那种方式来保存审计日志。每一个选择器包含一个唯一的名称和一个断言。断言列表中默认的选择器,使用的是应用程序服务类。如下图所示: Configuration.Auditing.Selectors.Add( 你可以在自己的模块初始化方法(PreInitialize)中添加自己的断言选择器。同样的,如果你不喜欢使用应用程序服务来保存审计日志,你也可以通过名称(name)来移除断言选择器,这就是为什么断言选择器的名称必须是唯一的(你也可以通过Linq的方式查找到选择器来移除它)。 通过属性来启用和禁用审计日志当你使用配置项来配置断言选择器时,你可以通过使用Audited和DisableAuditing特性标记到单个类或单个方法来实现审计系统的启用和禁用。例如: [Audited] [DisableAuditing] public void MyMethod3(int a,int b) 上述列子中,MyClass类中除了MyMethod2明确标记不需要审计外,其他的方法都会被审计。Audited特性能够帮助你只想保存审计日志的方法,进行审计日志保存。 说明保存审计日志的方法必须是public修饰的,private和protected修饰的方法将会被忽略。 如果调用的方法不在类的引用范围内,那么引用的方法必须是虚方法(virtual),如果依赖注入的是它自己的接口则不需要是虚方法(例如注入 IPersonService 来使用 PersonService类)。 ABP使用动态代理和拦截机制以后,使用虚方法是必须的。对MVC Controller actions 使用审计日志不是正确的做法,因为他们可能不是虚方法。 原文地址: http://www.cnblogs.com/mienreal/p/4690781.html 关注我们的方法: (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |