/// <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(); }
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); }
/// <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(); }
/// <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(); } }
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); }