知识 分享 互助 懒人建站

懒人建站专注于网页素材下载,提供网站模板、网页设计、ps素材、图片素材等,服务于【个人站长】【网页设计师】和【web开发从业者】的代码素材与设计素材网站。

懒人建站提供网页素材下载、网站模板
知识 分享 互助!

mvc4.0 IActionFilter(Action拦截器接口)实现简单后台操作日志功能

作者:佳明妈 来源:web前端开发 2016-08-18 人气:3446 QQ交流群:4188479
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拦截器接口)实现简单后台操作日志功能由懒人建站收集整理,您可以自由传播,请主动带上本文链接

懒人建站就是免费分享,觉得有用就多来支持一下,没有能帮到您,懒人也只能表示遗憾,希望有一天能帮到您。

试玩游戏,也能赚钱

1块钱也能提现

→立即行动

mvc4.0 IActionFilter(Action拦截器接口)实现简单后台操作日志功能-最新评论