Asp.Net MVC 操作日志拦截器

/**
*┌──────────────────────────────────────────────────────────────┐
*│ 描    述:操作日志拦截器            
*│ 作    者:Dennyhui                                             
*│ 版    本:1.0                                                 
*│ 创建时间: 2019年10月25日19:40:01
*└──────────────────────────────────────────────────────────────┘
*┌──────────────────────────────────────────────────────────────┐
*│ 命名空间:Fisk.DataWithReportBusiness       
*│ 类       名:OperationLog                                      
*└──────────────────────────────────────────────────────────────┘
*/
using Fisk.DataWithReportDataAccess;
using Fisk.DataWithReportUtilities.WebPage;
using System;
using System.Web;
using System.Web.Mvc;

namespace Fisk.DataWithReportBusiness
{
    /// <summary>
    /// 操作日志拦截器 2019年10月25日19:40:01 
    /// </summary>
    public class OperationLog : FilterAttribute, IActionFilter
    {
        /// <summary>
        /// 实例化EF
        /// </summary>
        private BIDBEntities BE = new BIDBEntities();
        /// <summary>
        /// 操作类型
        /// </summary>
        public enum operate { select = 0, add = 1, delete = 2, update = 3, login = 4, config = 5 };
        /// <summary>
        /// 日志关键字
        /// </summary>
        public operate Key { get; set; }

        /// <summary>
        /// 日志描述
        /// </summary>
        public string Description { get; set; }

        /// <summary>
        /// Action执行后
        /// </summary>
        void IActionFilter.OnActionExecuted(ActionExecutedContext filterContext)
        {
            try
            {
                var Request= filterContext.RequestContext.HttpContext.Request;//获取控制器传入的参数
                var result = ((System.Web.Mvc.JsonResult)filterContext.Result).Data.ToString();//获取控制器返回的结果
                System_Log sl = new System_Log();
                sl.Id = Guid.NewGuid().ToString();
                sl.Tkey = Enum.GetName(typeof(operate), Key) ;
                sl.UserAccount = CurrentUser.UserAccount;
                sl.OperateResult = result;
                sl.Description = Description;
                sl.CreateTime = DateTime.Now;
                sl.ActionName = filterContext.ActionDescriptor.ActionName;
                sl.ControllerName = filterContext.ActionDescriptor.ControllerDescriptor.ControllerName;
                sl.Parameters = HttpUtility.UrlDecode(Request.Form.ToString());
                sl.UserHostAddress = Request.UserHostAddress;
                sl.BrowserInformation = Request.Browser.Browser + "_" + Request.Browser.Version;
                BE.System_Log.Add(sl);
                BE.SaveChangesAsync();
            }
            catch (Exception ex)
            {
                //ILog log = LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name);
                //log.Error("OnActionExecuted() error detail:" + ex);
            }

            //logService.Save(model);
        }

        /// <summary>
        /// Action执行前
        /// </summary>
        void IActionFilter.OnActionExecuting(ActionExecutingContext filterContext)
        {

        }
    }

}

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值