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

  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. }

使用方法:

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

MVC拦截器记录操作用户日志的更多相关文章

  1. spring mvc 通过拦截器记录请求数据和响应数据

    spring mvc 能过拦截器记录请求数据记录有很多种方式,主要有以下三种: 1:过滤器 2:HandlerInterceptor拦截器 3:Aspect接口控制器 但是就我个人所知要记录返回的数据 ...

  2. spring mvc 拦截器的使用

    Spring MVC 拦截器的使用 拦截器简介 Spring MVC 中的拦截器(Interceptor)类似于 Servler 中的过滤器(Filter).用于对处理器进行预处理和后处理.常用于日志 ...

  3. mvc拦截器

    在ASP.NET MVC中,有三种拦截器:Action拦截器.Result拦截器和Exception拦截器.这里说的是第一种和第三种.其实所谓的ASP.NET MVC拦截器,也没什么神秘的,就是一个普 ...

  4. 【Java Web开发学习】Spring MVC 拦截器HandlerInterceptor

    [Java Web开发学习]Spring MVC 拦截器HandlerInterceptor 转载:https://www.cnblogs.com/yangchongxing/p/9324119.ht ...

  5. Spring Boot 2.X(九):Spring MVC - 拦截器(Interceptor)

    拦截器 1.简介 Spring MVC 中的拦截器(Interceptor)类似于 Servlet 开发中的过滤器 Filter,它主要用于拦截用户请求并作相应的处理,它也是 AOP 编程思想的体现, ...

  6. 写的太细了!Spring MVC拦截器的应用,建议收藏再看!

    Spring MVC拦截器 拦截器是Spring MVC中强大的控件,它可以在进入处理器之前做一些操作,或者在处理器完成后进行操作,甚至是在渲染视图后进行操作. 拦截器概述 对于任何优秀的MVC框架, ...

  7. SSM(spring mvc+spring+mybatis)学习路径——2-2、spring MVC拦截器

    目录 2-2 Spring MVC拦截器 第一章 概述 第二章 Spring mvc拦截器的实现 2-1 拦截器的工作原理 2-2 拦截器的实现 2-3 拦截器的方法介绍 2-4 多个拦截器应用 2- ...

  8. Spring MVC拦截器配置

    Spring MVC拦截器配置 (1)自定义拦截器 package learnspringboot.xiao.other; import org.springframework.web.servlet ...

  9. 对于Spring MVC 拦截器的一些了解

    Spring MVC 拦截器的执行顺序 应用场景 假设请求 localhost:8080/ 则要求直接重定向到 localhost:8080/login ; 定义拦截器顺序 permission lo ...

随机推荐

  1. Upload files to aliyunOSS with bootstrap-fileinput

    本文主要涉及两个概念: 阿里云OSS:对象存储(Object Storage Service,简称OSS),是阿里云对外提供的海量.安全和高可靠的云存储服务. bootstrap-fileinput: ...

  2. js学习笔记(一)

    js 有5中原始类型:number. string. boolean. null.undefined js 有6中类型: 5中原始类型 在加上1中Object类型 typeof null === 'o ...

  3. LSTM 分类器笔记及Theano实现

    相关讨论 http://tieba.baidu.com/p/3960350008 基于教程http://deeplearning.net/tutorial/lstm.html LSTM基本原理http ...

  4. JS验证输入网址

    function CheckUrl(a) {    var falg = true;    var regstr = /^http(s)?:\/\/([\w-]+\.)+[\w-]+(\/[\w- . ...

  5. BAT的面试经验_摘抄

    一.心态 心态很重要! 心态很重要! 心态很重要! 重要的事情说三遍,这一点我觉得是必须放到前面来讲. 找工作之前,有一点你必须清楚,就是找工作是一件看缘分的事情,不是你很牛逼,你就一定能进你想进的公 ...

  6. Scrum7.0

    Sprint回顾 让我们一次比一次做得更好. 1.回顾组织 主题:“我们怎样才能在下个sprint中做的更好?” 时间:1个小时 参与者:整个团队 场所:课室 秘书:陈程 2.回顾流程 (1)spri ...

  7. 简单的VC++ ADO帮助类

    首先看头文件 #pragma once #import "c:\Program Files\Common Files\System\ado\msado15.dll" no_name ...

  8. JS里面利用random()实现随机颜色更换

    首先你需要一个div <div id="box"></div> 然后给这个div加入CSS属性 #box{width:500px;height:500px; ...

  9. note->notice

    登陆博客园,乍眼一看上一篇博客的日期还是2月底,如今已是5月份,期间好几次想要记录一些东西,总感觉现在一天二十四小时越来越短,有几次登陆博客园甚至连密码都要重置一下才能登陆...这两个月的时间里经理了 ...

  10. 9.5.8 Optimizing InnoDB Disk I/O

    如果你数据库设计以及sq操作都是最佳实践,但是你数据库仍然被较重的io活动拖累的较慢,那么试一试看看top或者windows的任务管理器,cpu使用率和工作量低于70%,那么或许是您的硬盘较慢. 1 ...