public override void OnException(HttpActionExecutedContext actionExecutedContext) { Exception ex = actionExecutedContext.Exception; LogicalThreadContext.Properties["trackid"] = Guid.NewGuid().ToString(); log.Error("API调用出现异常", ex); OwnApiHttpResult result = new OwnApiHttpResult(ResultType.Exception, ResultCode.Exception, "程序发生异常"); actionExecutedContext.Response = new OwnApiHttpResponse(result); base.OnException(actionExecutedContext); }
public override void OnActionExecuting(HttpActionContext actionContext) { try { DateTime requestTime = DateTime.Now; var request = ((HttpContextWrapper)actionContext.Request.Properties["MS_HttpContext"]).Request; var requestMethod = request.HttpMethod; bool skipAuthorization = actionContext.ActionDescriptor.GetCustomAttributes <AllowAnonymousAttribute>().Any(); if (skipAuthorization) { return; } var token = request.QueryString["token"]; if (string.IsNullOrEmpty(token)) { OwnApiHttpResult result = new OwnApiHttpResult(ResultType.Failure, ResultCode.Failure2Sign, "token不能为空"); actionContext.Response = new OwnApiHttpResponse(result); base.OnActionExecuting(actionContext); return; } var userInfo = SSOUtil.GetTokenInfo(token); if (userInfo == null) { OwnApiHttpResult result = new OwnApiHttpResult(ResultType.Failure, ResultCode.Failure2Sign, "token已经超时"); actionContext.Response = new OwnApiHttpResponse(result); return; } base.OnActionExecuting(actionContext); } catch (Exception ex) { LogUtil.Error(string.Format("API错误:{0}", ex.Message), ex); OwnApiHttpResult result = new OwnApiHttpResult(ResultType.Exception, ResultCode.Exception, "内部错误"); actionContext.Response = new OwnApiHttpResponse(result); return; } }