zoukankan      html  css  js  c++  java
  • 通用权限管理平台--系统日志

    通用权限管理平台利用过滤器实现自动记录系统日志功能。

    首先需要自定义日志过滤器属性LogRequestAttribute,并且继承ActionFilterAttribute,IActionFilter

    在日志过滤器属性类中实现基类IActionFilter的方法OnActionExecuting

    void IActionFilter.OnActionExecuting(ActionExecutingContext filterContext)
            {
                try
                {
                    TLogDo log = new TLogDo();
                    log.LogGuid = System.Guid.NewGuid().ToString();
                    TUserDo user=DataAccess.FindById<TUserDo>(filterContext.HttpContext.User.Identity.Name);
                    log.UserName = user == null ? "" : user.LoginId;
                    log.Operation = OperationDescription;
                    log.OpDate = System.DateTime.Now;
                    log.Url = filterContext.HttpContext.Request.Url.ToString();
                    log.IpAddress = filterContext.ActionParameters["IPAdress"] == null ? "" : filterContext.ActionParameters["IPAdress"].ToString(); //filterContext.HttpContext.Request.UserHostAddress;
                    DataAccess.Add<TLogDo>(log);
                }
                catch
                {
                }
                finally
                {
                }
            }

    另外,为了记录模块操作中文描述需要在此类中增加一个自定义属性OperationDescription操作描述,这样的话就可以达到记录不同模块不同操作。

    这样的话,自动日志记录功能已经实现,接下来需要做的是,对需要日志记录的Controller增加日志属性,完成与日志的绑定。

    [LogRequest(OperationDescription = "登录")]
            public ActionResult LogOn()
            {           
                return View();
            }

    这样增加LogRequest属性即可实现Action的日志功能。

    演示地址:http://hnjgsoft.xicp.net/ 账号:admin 密码:888888

    如发现地址无法访问,请与本人联系,QQ:42934067

  • 相关阅读:
    在DNN模块开发中使用jQuery
    在MSBuild.exe中使用条件编译(Conditional Compile)
    ASP.NET SQL 注入免费解决方案
    html+css做圆角表格
    [ASP]sitemap地图生成代码
    刺穿MYIE|24小时同一ip弹一次|无须body加载|精简代码
    用ASPJPEG组件制作图片的缩略图和加水印
    16个经典面试问题回答思路[求职者必看]
    一个26岁IT男人写在辞职后
    搜弧IT频道的幻灯片切换的特效源代码
  • 原文地址:https://www.cnblogs.com/hn731/p/easyui_mvc4_vs2010.html
Copyright © 2011-2022 走看看