mvc4.0 IActionFilter(Action拦截器接口)实现简单后台操作日志功能
作者:佳明妈 来源:web前端开发 2016-08-18 人气:mvc4.0 IActionFilter(Action拦截器接口)实现简单后台操作日志功能,
首先我们要了解MVC提供了4种常用的拦截器:IActionFilter(Action拦截器接口)、IExceptionFilter(异常拦截器接口)、IResultFil
mvc4.0 IActionFilter(Action拦截器接口)实现简单后台操作日志功能,
首先我们要了解MVC提供了4种常用的拦截器:IActionFilter(Action拦截器接口)、IExceptionFilter(异常拦截器接口)、IResultFilter(Result拦截器接口)、IAuthorizationFilter(授权拦截器接口)
1.建一张保存操作日志的表
1
2
3
4
5
6
7
8
9
10
|
create table system_log
(
Id char(32) primary key,
UserId char(32) not null comment '用户Id',
UserName varchar(50) not null comment '用户名称',
Tkey varchar(20) not null comment '关键字',
Description varchar(100) not null comment '操作描述',
OperateResult int default 0 not null comment '操作结果.0,失败;1,成功;',
DateTime datetime not null comment '操作时间'
) comment '系统日志';
|
2.实现IActionFilter接口(Action拦截器接口)
这里定义了2个参数Key和Description,分别表示操作的关键字和描述,方便分类查询和展示
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
|
/// <summary>
/// 操作日志拦截器
/// </summary>
public class LoggerFilter : FilterAttribute, IActionFilter
{
/// <summary>
/// 日志关键字
/// </summary>
public string Key { get; set; }
/// <summary>
/// 日志描述
/// </summary>
public string Description { get; set; }
/// <summary>
/// Action执行后
/// </summary>
void IActionFilter.OnActionExecuted(ActionExecutedContext filterContext)
{
var result = ((System.Web.Mvc.JsonResult)filterContext.Result).Data.ToString();
var logService = new Service.SystemLogService();
var model = new Data.DomainModels.SystemLog()
{
UserId = "管理员Id",
UserName = "管理员名称",
Tkey = Key,
Description = Description,
OperateResult = result.Contains("True") ? 1 : 0,
};
logService.Save(model);
}
/// <summary>
/// Action执行前
/// </summary>
void IActionFilter.OnActionExecuting(ActionExecutingContext filterContext)
{
}
}
|
3.使用日志拦截器
在需要记录操作日志的Action上加上拦截器属性就OK了,麻烦的是需要给每个Action定义Key和Description
1
2
3
4
5
6
7
8
9
10
|
/// <summary>
/// 日志拦截器测试
/// </summary>
[LoggerFilter(Key = "key", Description = "做了哪些事情")]
public ActionResult DoSomething(string param)
{
//具体业务逻辑
return JRCommonHandleResult(true);
}
|
↓ 查看全文
mvc4.0 IActionFilter(Action拦截器接口)实现简单后台操作日志功能由懒人建站收集整理,您可以自由传播,请主动带上本文链接
懒人建站就是免费分享,觉得有用就多来支持一下,没有能帮到您,懒人也只能表示遗憾,希望有一天能帮到您。
mvc4.0 IActionFilter(Action拦截器接口)实现简单后台操作日志功能-最新评论