主要是用於記錄用戶操作動態,
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("用戶管理", "修改密碼")] 就可以獲取到用戶操作的動作。