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

 public class OperationAttribute:ActionFilterAttribute
{
/// <summary>
/// 方法名称
/// </summary>
public string ActionName { get; set; }
/// <summary>
/// 控制器名称
/// </summary>
public string ControllerName { get; set; }
/// <summary>
/// 方法参数
/// </summary>
public string ActionParameters { get; set; }
/// <summary>
/// 访问时间
/// </summary>
public DateTime AccessDate { get; set; }
/// <summary>
/// 登录用户
/// </summary>
public string LoginName { get; set; }
/// <summary>
/// 操作备注
/// </summary>
public string Operationremark { get; set; }
/// <summary>
/// 是否记录入库
/// </summary>
public bool IsLog { get; set; }
/// <summary>
/// 操作模块描述
/// </summary>
public string ModuleName { get; set; }
/// <summary>
/// 操作动作
/// </summary>
public string Option { get; set; } /// <summary>
/// 操作人id
/// </summary>
public int adminid { get; set; }
/// <summary>
/// 操作人名
/// </summary>
public string adminName { get; set; } public OperationAttribute()
{
this.AccessDate = DateTime.Now;
this.IsLog = true;
} /// <summary>
///
/// </summary>
/// <param name="moduleName">操作模块描述</param>
/// <param name="option">操作动作描述</param>
/// <param name="remark">其他备注</param>
public OperationAttribute(string moduleName, string option,string remark="")
{
this.AccessDate = DateTime.Now;
this.IsLog = true;
this.ModuleName = moduleName;
this.Option = option;
this.Operationremark = remark;
}
public override void OnActionExecuting(ActionExecutingContext filterContext)
{
if (this.IsLog)
{
//方法名称
this.ActionName = filterContext.ActionDescriptor.ActionName;
//控制器
this.ControllerName = filterContext.ActionDescriptor.ControllerDescriptor.ControllerName;
///页面传递参数
IDictionary<string, object> dic = filterContext.ActionParameters;
var parameters = new System.Text.StringBuilder();
foreach (var item in dic)
{
parameters.Append(item.Key + "=" + item.Value + "|^|");
}
this.ActionParameters = parameters.ToString();
var userInfo = GetUserResultModel(); //this.adminName = userInfo.userName; //this.adminid = userInfo.userid; //操作数据库记录 }
}

使用方法:

直接在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. 利用JAVA生成二维码

    本文章整理于慕课网的学习视频<JAVA生成二维码>,如果想看视频内容请移步慕课网. 维基百科上对于二维码的解释. 二维条码是指在一维条码的基础上扩展出另一维具有可读性的条码,使用黑白矩形图 ...

  2. 10个顶级的CSS UI开源框架

    随着CSS3和HTML5的流行,我们的WEB页面不仅需要更人性化的设计理念,而且需要更酷的页面特效和用户体验.作为开发者,我们需要了解一些宝贵的CSS UI开源框架资源,它们可以帮助我们更快更好地实现 ...

  3. Java命令

    java -classpath, 设定要搜索的类的路径,可以是目录,jar文件,zip文件(里面都是class文件),会覆盖掉所有的CLASSPATH的设定. 由于所要执行的类也是要搜索的类的一部分, ...

  4. 【转】Android实现点击两次返回键退出

    在做安卓应用是我们经常要判断用户对返回键的操作,一般为了防止误操作都是在用户连续按下两次返回键的时候提示用户是否退出应用程序. 第一种实现的基本原理就是,当按下BACK键时,会被onKeyDown捕获 ...

  5. 解决错误 Cannot await in the body of a catch clause

      解决错误 Cannot await in the body of a catch clause   static async Task f() { ExceptionDispatchInfo ca ...

  6. 对 clear:both 这个样式的一些理解

    看下我今天一直研究的两个例子吧.希望对自己跟大家有帮助: 例子一: <!DOCTYPE html> <html> <head lang="en"> ...

  7. SQL优化 CREATE STATISTICS

    CREATE STATISTICS 语法: https://msdn.microsoft.com/zh-cn/library/ms188038.aspx STATISTICS优化中的使用案例: htt ...

  8. java打包成jar,但不打包配置文件

    有时候我们做java project的时候,都会打包成jar程序,为了方便部署会加个配置文件conf/pro.properties(conf文件夹与src文件夹同级) 但是不想打包进jar.其实用ec ...

  9. Java内部类,枚举

    模式: 模板模式: 简单工厂模式: 适配器模式:  interface ICellPhone  {   void sendMsg();  } class Android implements ICel ...

  10. 学会Git玩转Github

    1. 了解Git和Github 1.1 什么是Git Git是一个免费.开源的版本控制软件 1.2 什么是版本控制系统 版本控制是一种记录一个或若干个文件内容变化,以便将来查阅特定版本修订情况得系统. ...