/// <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);
 }
Example #3
0
        /// <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);
        }
Example #4
0
        /// <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, "重置成功");
        }