/// <summary> /// Called after the action method executes. /// </summary> /// <param name="filterContext">The filter context.</param> public override void OnActionExecuted(ActionExecutedContext filterContext) { IFunction function = filterContext.GetExecuteFunction(ServiceProvider); if (function == null || !function.OperateLogEnabled) { return; } Operator @operator = new Operator() { Ip = filterContext.HttpContext.Request.GetIpAddress(), }; if (filterContext.HttpContext.Request.IsAuthenticated) { ClaimsIdentity identity = filterContext.HttpContext.User.Identity as ClaimsIdentity; if (identity != null) { @operator.UserId = identity.GetClaimValue(ClaimTypes.NameIdentifier); @operator.UserName = identity.GetClaimValue(ClaimTypes.Name); } } OperateLog operateLog = new OperateLog() { FunctionName = function.Name, Operator = @operator }; if (function.DataLogEnabled) { foreach (DataLog dataLog in DataLogCache.DataLogs) { operateLog.DataLogs.Add(dataLog); } } OperateLogWriter.Write(operateLog); }
/// <summary> /// Occurs after the action method is invoked. /// </summary> /// <param name="actionExecutedContext">The action executed context.</param> public override void OnActionExecuted(HttpActionExecutedContext actionExecutedContext) { IFunction function = actionExecutedContext.Request.GetExecuteFunction(ServiceProvider); if (function == null || !function.OperateLogEnabled) { return; } Operator @operator = new Operator() { Ip = actionExecutedContext.Request.GetClientIpAddress() }; IIdentity identity = actionExecutedContext.ActionContext.RequestContext.Principal.Identity; if (identity.IsAuthenticated) { ClaimsIdentity user = identity as ClaimsIdentity; if (user != null) { @operator.UserId = user.GetClaimValue(ClaimTypes.NameIdentifier); @operator.Name = user.GetClaimValue(ClaimTypes.Name); @operator.NickName = user.GetClaimValue(ClaimTypes.GivenName); } } OperateLog operateLog = new OperateLog() { FunctionName = function.Name, Operator = @operator }; if (function.DataLogEnabled) { foreach (DataLog dataLog in DataLogCache.DataLogs) { operateLog.DataLogs.Add(dataLog); } } OperateLogWriter.Write(operateLog); }
/// <summary> /// 重置用户Token有效期 /// </summary> /// <param name="user">用户</param> /// <param name="loginDevice">登录设备</param> /// <param name="clientVersion">客户端版本</param> /// <returns></returns> public async Task<OperationResult> ResetToken(UserInfo user, LoginDevice loginDevice,string clientVersion) { Operator oper = new Operator() { UserId = user.Id.ToString(), UserName = user.SysUser.UserName, LoginDevice = loginDevice, PhoneNo = user.SysUser.PhoneNumber, ClientVersion = clientVersion, ValidatePeriod = DateTime.Now.AddDays(30),//默认30天有效期 UserDatas = new Dictionary<string, object>() }; string strAuth = oper.ToJsonString(); user.Token = DesHelper.Encrypt(strAuth, OSharp.Core.Constants.BodeAuthDesKey); await UserInfoRepo.UpdateAsync(user); return new OperationResult(OperationResultType.Success, "重置成功", user.Token); }
/// <summary> /// 重置用户Token有效期 /// </summary> /// <param name="user">用户</param> /// <param name="loginDevice">登录设备</param> /// <param name="clientVersion">客户端版本</param> /// <returns></returns> public async Task<OperationResult> ResetToken(UserInfo user, LoginDevice loginDevice, string clientVersion) { Operator oper = new Operator() { UserId = user.Id.ToString(), UserName = user.SysUser.UserName, LoginDevice = loginDevice, PhoneNo = user.SysUser.PhoneNumber, ClientVersion = clientVersion, ValidatePeriod = DateTime.Now.AddDays(30)//默认30天有效期 }; string authDesKey = "bodeauth"; string strAuth = oper.ToJsonString(); user.Token = DesHelper.Encrypt(strAuth, authDesKey); await UserInfoRepo.UpdateAsync(user); return new OperationResult(OperationResultType.Success, "重置成功"); }