zoukankan      html  css  js  c++  java
  • MVC拦截器记录操作用户日志

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

     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("用户管理", "修改密码")] 就可以获取到用户操作的动作。

  • 相关阅读:
    55. 跳跃游戏
    45. 跳跃游戏 II
    对称的二叉树
    字符型图片验证码,使用tensorflow实现卷积神经网络,进行验证码识别CNN
    python版本升级及pip部署方法
    Two Sum [easy] (Python)
    工作中常用的linux命令(持续更新)
    PAT-1001. 害死人不偿命的(3n+1)猜想 (15)
    C++二维数组的动态声明
    19. Remove Nth Node From End of List(C++,Python)
  • 原文地址:https://www.cnblogs.com/yjung/p/5368704.html
Copyright © 2011-2022 走看看