Пример #1
0
        public ApiResultModel <string> TestLog()
        {
            Net4Logger.Debug("debug", "阿萨德法师法方为人阿萨德法师法方为人阿萨德法师法方为人", new Exception("debug"));
            Net4Logger.Error("error", "asfsafdsfasfdsf阿萨德法师法方为人阿萨德法师法方为人阿萨德法师法方为人", new Exception("error"));
            Net4Logger.Info("info", "1q324154354325654阿萨德法师法方为人阿萨德法师法方为人阿萨德法师法方为人", new Exception("info"));

            return(new ApiResultModel <string>());
        }
        /// <summary>
        /// 方法执行前
        /// </summary>
        /// <param name="context"></param>
        public override async System.Threading.Tasks.Task OnActionExecutionAsync(ActionExecutingContext context, ActionExecutionDelegate next)
        {
            // 判断是否忽略验证
            if (context.ActionDescriptor is ControllerActionDescriptor cad)
            {
                var controleIgnor = cad.ControllerTypeInfo.GetCustomAttributes(inherit: true).Any(x => x is IgnorTokenAttribute || x is InnerServiceAttribute || x is AllowAnonymousAttribute);
                if (controleIgnor)
                {
                    return;
                }
                var actionIgnor = cad.MethodInfo.GetCustomAttributes(inherit: true).Any(x => x is IgnorTokenAttribute || x is InnerServiceAttribute || x is AllowAnonymousAttribute);
                if (actionIgnor)
                {
                    return;
                }
            }

            ApiResultModel <string> apiResult = null;
            var path   = context.HttpContext.Request.Path;
            var source = context.HttpContext.Request.Headers[SourceKey];//请求来源为微信时,不做token验证

            if (string.IsNullOrEmpty(source) || source != "wx")
            {
                var token = context.HttpContext.Request.Headers[TokenKey];
                if (!string.IsNullOrEmpty(token))
                {
                    //不存在该缓存键
                    if (!RedisClient.Exists(RedisDatabase.DB_UserService, RedisCommon.GetTokenKey(token)))
                    {
                        apiResult = new ApiResultModel <string>()
                        {
                            Code = ApiResultCode.UserInvalid
                        };
                        context.Result = new JsonResult(apiResult);
                        return;
                    }
                }
                else
                {
                    apiResult = new ApiResultModel <string>()
                    {
                        Code = ApiResultCode.NoToken
                    };
                    context.Result = new JsonResult(apiResult);

                    //日志
                    Net4Logger.Error(path, "非法请求(无token)");
                }
            }
            await base.OnActionExecutionAsync(context, next);
        }
        //private readonly IExceptionlessLogger _exceptionlessLogger;
        //public GlobalExceptionAttribute(IExceptionlessLogger exceptionlessLogger)
        //{
        //    _exceptionlessLogger = exceptionlessLogger;
        //}

        public void OnException(ExceptionContext context)
        {
            ApiResultModel <string> apiResult = null;
            var ex = context.Exception;

            if (ex != null)
            {
                apiResult = new ApiResultModel <string>()
                {
                    Code = ApiResultCode.Exception, Message = ex.Message
                };
                context.Result = new JsonResult(apiResult);
                context.HttpContext.Response.StatusCode = (int)HttpStatusCode.InternalServerError;
                context.ExceptionHandled = true;

                //日志
                System.Threading.Tasks.Task.Run(() =>
                {
                    Net4Logger.Error(context.HttpContext.Request.Path, ex.Message, ex);
                    //_exceptionlessLogger.Error(context.HttpContext.Request.Path, ex.Message, "");
                });
            }
        }
Пример #4
0
 public void TestNetLog()
 {
     Net4Logger.Debug("debug", "阿萨德法师法方为人阿萨德法师法方为人阿萨德法师法方为人", new Exception("debug"));
     Net4Logger.Error("error", "asfsafdsfasfdsf阿萨德法师法方为人阿萨德法师法方为人阿萨德法师法方为人", new Exception("error"));
     Net4Logger.Info("info", "1q324154354325654阿萨德法师法方为人阿萨德法师法方为人阿萨德法师法方为人", new Exception("info"));
 }