Exemplo n.º 1
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="filterContext"></param>
        public override void OnResultExecuted(ResultExecutedContext filterContext)
        {
            base.OnResultExecuted(filterContext);

            _viewDuration = Math.Round((DateTime.Now - _viewdatetimenow).TotalSeconds, 3);

            //记录用户访问记录
            var area       = (string)filterContext.RouteData.Values["area"];
            var action     = (string)filterContext.RouteData.Values["action"];
            var controller = (string)filterContext.RouteData.Values["controller"];
            var recordId   = (string)filterContext.RouteData.Values["id"];

            var sysControllerSysAction =
                _iSysControllerSysActionService.GetAll(a => a.SysController.ControllerName.Equals(controller) &&
                                                       a.SysController.SysArea.AreaName.Equals(area) && a.SysAction.ActionName.Equals(action)).OrderBy(a => a.SysController.SystemId).Select(a => new { a.Id, SysAreaName = a.SysController.SysArea.Name, SysControllerName = a.SysController.Name, SysActionName = a.SysAction.Name }).FirstOrDefault();

            var sysuserlog = new SysUserLog
            {
                Ip = filterContext.HttpContext.Connection.RemoteIpAddress.ToString(),
                SysControllerSysActionId = sysControllerSysAction?.Id,
                RecordId       = recordId,
                Url            = filterContext.HttpContext.Request.Path,
                SysArea        = sysControllerSysAction?.SysAreaName ?? area,
                SysController  = sysControllerSysAction?.SysControllerName ?? controller,
                SysAction      = sysControllerSysAction?.SysActionName ?? action,
                ViewDuration   = _viewDuration,
                ActionDuration = _actionDuration,
                Duration       = Math.Round((DateTime.Now - _actiondatetimenow).TotalSeconds, 3),
                RequestType    = filterContext.HttpContext.Request.Method
            };

            _iSysUserLogService.Save(null, sysuserlog);

            _iSysUserLogService.CommitAsync().Wait();
        }
        /// <summary>
        ///
        /// </summary>
        /// <param name="actionExecutedContext"></param>
        public override void OnActionExecuted(HttpActionExecutedContext actionExecutedContext)
        {
            base.OnActionExecuted(actionExecutedContext);

            ////记录用户访问记录
            var routetemplate = actionExecutedContext.ActionContext.RequestContext.RouteData.Route.RouteTemplate;


            var action = actionExecutedContext.ActionContext.ActionDescriptor.ActionName;

            var controller = actionExecutedContext.ActionContext.ActionDescriptor.ControllerDescriptor.ControllerName;

            var sysuserlog = new SysUserLog
            {
                Ip             = HttpContext.Current.Request.UserHostAddress,
                RecordId       = "",
                Url            = actionExecutedContext.Request.RequestUri.PathAndQuery,
                SysArea        = "WebApi",
                SysController  = controller,
                SysAction      = action,
                ActionDuration = Math.Round((DateTime.Now - _datetimenow).TotalSeconds, 3),
                Duration       = Math.Round((DateTime.Now - _datetimenow).TotalSeconds, 3),
                RequestType    = actionExecutedContext.Request.Method.Method
            };

            var sysUserLogService = DependencyResolver.Current.GetService <ISysUserLogService>();
            var iUnitOfWork       = DependencyResolver.Current.GetService <IUnitOfWork>();

            sysUserLogService.Save(null, sysuserlog);

            iUnitOfWork.CommitAsync().Wait();
        }
Exemplo n.º 3
0
        public BaseResponse <BaseResponseList <SysUserLog> > searchUserLog(ViewModelMsgSearchUserLogReqeust condtion)
        {
            BaseResponse <BaseResponseList <SysUserLog> > result = new BaseResponse <BaseResponseList <SysUserLog> >();

            try
            {
                result.result = SysUserLog.searchLog(condtion);
            }
            catch (Exception e) {
                SysException.getResult(result, e, condtion);
            }
            return(result);
        }
Exemplo n.º 4
0
 /// <summary>
 /// 添加系统操作日志
 /// </summary>
 /// <param name="sysUserLog"></param>
 public void AddSysUserLog(SysUserLog sysUserLog)
 {
     sysUserLog.LogId = PrimaryKeyHelper.Instance.CreateID();
     lock (LogsLock)
     {
         LogBuckets.Add(sysUserLog);
         if (LogBuckets.Count < MaxLogsCount)
         {
             return;
         }
         _sysUserLogDal.AddUserLog(LogBuckets);
         LogBuckets.Clear();
     }
 }
        /// <summary>
        ///
        /// </summary>
        /// <param name="filterContext"></param>
        public override void OnResultExecuted(ResultExecutedContext filterContext)
        {
            base.OnResultExecuted(filterContext);

            _viewDuration = Math.Round((DateTime.Now - _viewdatetimenow).TotalSeconds, 3);


            //记录用户访问记录
            var area       = (string)filterContext.RouteData.DataTokens["area"];
            var action     = (string)filterContext.RouteData.Values["action"];
            var controller = (string)filterContext.RouteData.Values["controller"];
            var recordId   = (string)filterContext.RouteData.Values["id"];

            var sysControllerSysActionService = DependencyResolver.Current.GetService <ISysControllerSysActionService>();
            var sysUserLogService             = DependencyResolver.Current.GetService <ISysUserLogService>();
            var iUnitOfWork = DependencyResolver.Current.GetService <IUnitOfWork>();

            var sysControllerSysAction =
                sysControllerSysActionService.GetAll(a => a.SysController.ControllerName.Equals(controller) &&
                                                     a.SysController.SysArea.AreaName.Equals(area) && a.SysAction.ActionName.Equals(action)).OrderBy(a => a.SysController.SystemId).Select(a => new { a.Id, SysAreaName = a.SysController.SysArea.Name, SysControllerName = a.SysController.Name, SysActionName = a.SysAction.Name }).FromCacheFirstOrDefaultAsync(CachePolicy.WithSlidingExpiration(new TimeSpan(0, 0, 1, 0))).Result;

            var sysuserlog = new SysUserLog
            {
                Ip = filterContext.RequestContext.HttpContext.Request.ServerVariables["Remote_Addr"],
                SysControllerSysActionId = sysControllerSysAction?.Id,
                RecordId       = recordId,
                Url            = filterContext.RequestContext.HttpContext.Request.RawUrl,
                SysArea        = sysControllerSysAction?.SysAreaName ?? area,
                SysController  = sysControllerSysAction?.SysControllerName ?? controller,
                SysAction      = sysControllerSysAction?.SysActionName ?? action,
                ViewDuration   = _viewDuration,
                ActionDuration = _actionDuration,
                Duration       = Math.Round((DateTime.Now - _actiondatetimenow).TotalSeconds, 3),
                RequestType    = filterContext.HttpContext.Request.RequestType
            };

            sysUserLogService.Save(null, sysuserlog);

            iUnitOfWork.CommitAsync().Wait();
        }
Exemplo n.º 6
0
        /// <inheritdoc />
        /// <summary>
        /// </summary>
        /// <param name="filterContext">
        /// </param>
        public override void OnResultExecuted(ResultExecutedContext filterContext)
        {
            var viewDuration = Math.Round((DateTime.Now - _viewdatetimenow).TotalMilliseconds, 3);

            //记录用户访问记录
            var area       = (string)filterContext.RouteData.Values["area"];
            var action     = (string)filterContext.RouteData.Values["action"];
            var controller = (string)filterContext.RouteData.Values["controller"];


            var sysuserlog = new SysUserLog
            {
                Ip  = filterContext.HttpContext.Connection.RemoteIpAddress.ToString(),
                Url = filterContext.HttpContext.Request.GetDisplayUrl(),

                ViewDuration   = viewDuration,
                ActionDuration = _actionDuration,
                Duration       = Math.Round((DateTime.Now - _actiondatetimenow).TotalMilliseconds, 3),
                RequestType    = filterContext.HttpContext.Request.Method,
            };

            var sysControllerSysAction = _iSysControllerSysActionService.GetAll(a => a.SysController.ControllerName.Equals(controller) && a.SysController.SysArea.AreaName.Equals(area) && a.SysAction.ActionName.Equals(action)).OrderBy(a => a.SysController.SystemId).Select(a => new { a.Id, SysAreaName = a.SysController.SysArea.Name, SysControllerName = a.SysController.Name, SysActionName = a.SysAction.Name }).FirstOrDefault();


            if (sysControllerSysAction != null)
            {
                sysuserlog.SysArea       = sysControllerSysAction?.SysAreaName ?? area;
                sysuserlog.SysController = sysControllerSysAction?.SysControllerName ?? controller;
                sysuserlog.SysAction     = sysControllerSysAction?.SysActionName ?? action;
            }


            _sysUserLogService.SaveAsync(null, sysuserlog).Wait();

            _iUnitOfWork.CommitAsync().Wait();

            base.OnResultExecuted(filterContext);
        }
        /// <summary>
        ///
        /// </summary>
        /// <param name="filterContext"></param>
        public override void OnResultExecuted(ResultExecutedContext filterContext)
        {
            base.OnResultExecuted(filterContext);

            //记录用户访问记录
            var area       = (string)filterContext.RouteData.DataTokens["area"];
            var action     = (string)filterContext.RouteData.Values["action"];
            var controller = (string)filterContext.RouteData.Values["controller"];
            var recordId   = (string)filterContext.RouteData.Values["id"];

            if (area == "Platform")
            {
                var sysControllerSysActionService = DependencyResolver.Current.GetService <ISysControllerSysActionService>();
                var sysUserLogService             = DependencyResolver.Current.GetService <ISysUserLogService>();

                var sysControllerSysAction =
                    sysControllerSysActionService.GetAll(a => a.SysController.ControllerName.Equals(controller) &&
                                                         a.SysController.SysArea.AreaName.Equals(area) && a.SysAction.ActionName.Equals(action)).Include(a => a.SysController.SysArea).Include(a => a.SysController).Include(a => a.SysAction).OrderBy(a => a.SysController.SystemId).FirstOrDefault();

                var sysuserlog = new SysUserLog
                {
                    Ip = filterContext.RequestContext.HttpContext.Request.ServerVariables["Remote_Addr"],
                    SysControllerSysActionId = sysControllerSysAction?.Id,
                    RecordId      = recordId,
                    Url           = filterContext.RequestContext.HttpContext.Request.RawUrl,
                    SysArea       = sysControllerSysAction?.SysController.SysArea.Name ?? area,
                    SysController = sysControllerSysAction?.SysController.Name ?? controller,
                    SysAction     = sysControllerSysAction?.SysAction.Name ?? action,
                    Duration      = Math.Round((DateTime.Now - _datetimenow).TotalSeconds, 3),
                    RequestType   = filterContext.HttpContext.Request.RequestType
                };

                sysUserLogService.Save(null, sysuserlog);

                sysUserLogService.Commit();
            }
        }
Exemplo n.º 8
0
        protected override bool AuthorizeCore(HttpContextBase httpContext)
        {
            var area = (string)httpContext.Request.RequestContext.RouteData.DataTokens["area"];

            //是否对该Area区域进行身份验证
            if (!Areas.Contains(area))
            {
                return(true);
            }

            //判断是否用户已登录
            if (!httpContext.User.Identity.IsAuthenticated)
            {
                return(false);
            }

            //判断用户是否有该区域访问的权限
            //如果权限中有该区域的任何一个操作既可以进行访问

            var action     = (string)httpContext.Request.RequestContext.RouteData.Values["action"];
            var controller = (string)httpContext.Request.RequestContext.RouteData.Values["controller"];
            var recordId   = (string)httpContext.Request.RequestContext.RouteData.Values["id"];

            var userrole = DependencyResolver.Current.GetService <IUserRole>();
            var userInfo = DependencyResolver.Current.GetService <IUserInfo>();

            if (!userrole.Check(area, action, controller))
            {
                throw new Exception("没有权限!请联系系统管理员进行权限分配!");
            }


            //记录用户访问记录

            var sysControllerSysActionService = DependencyResolver.Current.GetService <ISysControllerSysActionService>();
            var sysUserLogService             = DependencyResolver.Current.GetService <ISysUserLogService>();

            var sysControllerSysAction =
                sysControllerSysActionService.GetAllEnt()
                .Where(
                    a =>
                    a.SysController.ControllerName.Equals(controller) &&
                    a.SysController.SysArea.AreaName.Equals(area) && a.SysAction.ActionName.Equals(action))
                .Cache()
                .Select(a => a.Id)
                .First();

            var sysuserlog = new SysUserLog
            {
                Ip = httpContext.Request.ServerVariables["Remote_Addr"],
                SysControllerSysActionId = sysControllerSysAction,
                RecordId     = recordId,
                SysUserId    = userInfo.UserId,
                EnterpriseId = userInfo.EnterpriseId
            };

            sysUserLogService.Save(null, sysuserlog);
            sysUserLogService.Commit();

            return(true);
        }