MVC拦截器记录操作用户日志
MVC拦截器记录操作用户日志
码头地盘 发表于9个月前
MVC拦截器记录操作用户日志
  • 发表于 9个月前
  • 阅读 4
  • 收藏 0
  • 点赞 0
  • 评论 0

移动开发云端新模式探索实践 >>>   

主要是用于记录用户操作动态,

 1 public class OperationAttribute:ActionFilterAttribute  2 {  3 /// <summary>
 4 /// 方法名称  5 /// </summary>
 6 public string ActionName { get; set; }  7 /// <summary>
 8 /// 控制器名称  9 /// </summary>
10 public string ControllerName { get; set; } 11 /// <summary>
12 /// 方法参数 13 /// </summary>
14 public string ActionParameters { get; set; } 15 /// <summary>
16 /// 访问时间 17 /// </summary>
18 public DateTime AccessDate { get; set; } 19 /// <summary>
20 /// 登录用户 21 /// </summary>
22 public string LoginName { get; set; } 23 /// <summary>
24 /// 操作备注 25 /// </summary>
26 public string Operationremark { get; set; } 27 /// <summary>
28 /// 是否记录入库 29 /// </summary>
30 public bool IsLog { get; set; } 31 /// <summary>
32 /// 操作模块描述 33 /// </summary>
34 public string ModuleName { get; set; } 35 /// <summary>
36 /// 操作动作 37 /// </summary>
38 public string Option { get; set; } 39 
40 /// <summary>
41 /// 操作人id 42 /// </summary>
43 public int adminid { get; set; } 44 /// <summary>
45 /// 操作人名 46 /// </summary>
47 public string adminName { get; set; } 48 
49 public OperationAttribute() 50 { 51 this.AccessDate = DateTime.Now; 52 this.IsLog = true; 53 } 54 
55 /// <summary>
56 /// 
57 /// </summary>
58 /// <param name="moduleName">操作模块描述</param>
59 /// <param name="option">操作动作描述</param>
60 /// <param name="remark">其他备注</param>
61 public OperationAttribute(string moduleName, string option,string remark="") 62 { 63 this.AccessDate = DateTime.Now; 64 this.IsLog = true; 65 this.ModuleName = moduleName; 66 this.Option = option; 67 this.Operationremark = remark; 68 } 69 public override void OnActionExecuting(ActionExecutingContext filterContext) 70 { 71 if (this.IsLog) 72 { 73 //方法名称
74 this.ActionName = filterContext.ActionDescriptor.ActionName; 75 //控制器
76 this.ControllerName = filterContext.ActionDescriptor.ControllerDescriptor.ControllerName; 77 ///页面传递参数
78 IDictionary<string, object> dic = filterContext.ActionParameters; 79 var parameters = new System.Text.StringBuilder(); 80 foreach (var item in dic) 81 { 82 parameters.Append(item.Key + "=" + item.Value + "|^|"); 83 } 84 this.ActionParameters = parameters.ToString(); 85 var userInfo = GetUserResultModel(); 86 
87 //this.adminName = userInfo.userName; 88 
89 //this.adminid = userInfo.userid; 90 
91 //操作数据库记录
92  
93 
94 } 95 }

 

 

 

使用方法:

直接在action头上 加多特性[Operation("用户管理", "修改密码")] 就可以获取到用户操作的动作。

  • 打赏
  • 点赞
  • 收藏
  • 分享
共有 人打赏支持
粉丝 0
博文 16
码字总数 0
×
码头地盘
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
* 金额(元)
¥1 ¥5 ¥10 ¥20 其他金额
打赏人
留言
* 支付类型
微信扫码支付
打赏金额:
已支付成功
打赏金额: