主要是用于记录用户操作动态,
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("用户管理", "修改密码")] 就可以获取到用户操作的动作。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 零经验选手,Compose 一天开发一款小游戏!
· 通过 API 将Deepseek响应流式内容输出到前端
· AI Agent开发,如何调用三方的API Function,是通过提示词来发起调用的吗