public override void OnActionExecuting(ActionExecutingContext context) { _IsAuthorization = context.Filters.HasFilter(typeof(AllowAnonymousFilter)); if (!_IsAuthorization) { var uid = context.HttpContext.Request.Headers.Authorization(); var accountID = uid.ToGuid(); var account = Db.Account.AsNoTracking().FirstOrDefault(a => a.AccountId == accountID && a.DataState == 0); if (account == null) { context.Result = JsonResultFormat.ResponseFail(14002, "Authorization failure."); return; } if (account.LoginFailCount == 10) { context.Result = JsonResultFormat.ResponseFail(14003, "The account has been locked."); return; } _ValidTime = context.HttpContext.Request.Headers["ValidTime"].ToString().ToInt64(); BaseAccountID = account.AccountId; BaseAccount = account; } base.OnActionExecuting(context); }
public void OnAuthorization(AuthorizationFilterContext context) { if (!context.Filters.HasFilter(typeof(AllowAnonymousFilter))) { var result = JsonResultFormat.ResponseFail(-14001, "Invalid token."); var authorization = context.HttpContext.Request.Headers.Authorization(); if (authorization.IsNullOrEmpty()) { context.Result = result; return; } var authorizationJson = authorization.ToAesDecrypt(AppSettings.AesKey, AppSettings.AesIv); if (authorizationJson.IsNullOrEmpty()) { context.Result = result; return; } var token = new Serialization().DeserializeJsonToEntity <AuthorizationToken>(authorizationJson); if (token == null) { context.Result = result; return; } if (token.AccountGuid == null || token.AccountGuid == Guid.Empty) { context.Result = result; return; } if (token.ValidTime < DateTime.Now.ToUnixTime()) { context.Result = result; return; } if (token.IpAddress != context.HttpContext.Connection.RemoteIpAddress.ToString()) { context.Result = result; return; } if (token.UserAgent != context.HttpContext.Request.Headers.UserAgent()) { context.Result = result; return; } context.HttpContext.Request.Headers.Add("ValidTime", token.ValidTime.ToString()); context.HttpContext.Request.Headers["authorization"] = token.AccountGuid.ToString(); } }
public void OnException(ExceptionContext context) { if (context.Exception != null) { var exception = context.Exception.GetInnerException(); AsyncLogger.LogException(exception, context.HttpContext.Request); var errorCode = exception.HResult; if (errorCode == 0) { errorCode = 500; } context.Result = JsonResultFormat.ResponseFail(errorCode, "Server exception."); context.ExceptionHandled = true; } }
public override void OnActionExecuting(ActionExecutingContext context) { if (context.ModelState.IsValid == false) { var message = string.Empty; var modelErrors = context.ModelState.Values.Select(x => x.Errors); foreach (var item in modelErrors) { foreach (var subItem in item) { message = subItem.ErrorMessage; } } context.Result = JsonResultFormat.ResponseFail(-1, message); } base.OnActionExecuting(context); }
/// <summary> /// Json通用网格返回格式:返回成功 /// </summary> /// <returns> /// Json格式 : {code:0,rows:data,total:1,message:Success} /// </returns> protected virtual JsonResult ResponseGridResult() => JsonResultFormat.ResponseGridResult();
/// <summary> /// Json通用返回格式:返回失败 /// </summary> /// <param name="code">错误代码</param> /// <param name="message">错误信息(默认为"Unknown error")</param> /// <returns> /// Json格式 : {code:-1,data:"",count:-1,message:Unknown error} /// </returns> protected virtual JsonResult ResponseFail(int code = -1, string message = "Unknown error") => JsonResultFormat.ResponseFail(code, message);
/// <summary> /// Json通用返回格式:返回失败 /// </summary> /// <param name="message">错误信息(默认为"Unknown error")</param> /// <returns> /// Json格式 : {code:-1,data:"",count:-1,message:Unknown error} /// </returns> protected virtual JsonResult ResponseFail(string message = "Unknown error") => JsonResultFormat.ResponseFail(message);
/// <summary> /// Json通用返回格式:返回成功 /// </summary> /// <param name="dataTable"><see cref="DataTable"/></param> /// <param name="count">数据量(默认为 <see cref="DataTable.Rows"/> 的Count)</param> /// <returns> /// Json格式 : {code:0,data:DataTable,count:DataTable.Rows.Count,message:Success} /// </returns> protected virtual JsonResult ResponseSuccess(DataTable dataTable, int count = 0) => JsonResultFormat.ResponseSuccess(dataTable, count);
/// <summary> /// Json通用返回格式:返回成功 /// </summary> /// <param name="list"><see cref="List{T}"/></param> /// <param name="count">数据量(默认为 <see cref="List{T}.Count"/>)</param> /// <returns> /// Json格式 : {code:0,data:List,count:List.Count(),message:Success} /// </returns> protected virtual JsonResult ResponseSuccess <T>(List <T> list, int count = 0) => JsonResultFormat.ResponseSuccess(list, count);
/// <summary> /// Json通用返回格式:返回成功 /// </summary> /// <param name="data">要返回的数据</param> /// <param name="count">返回的数据行数(默认为1,数据为null则为0)</param> /// <returns> /// Json格式 : {code:0,data:data,count:1,message:Success} /// </returns> protected virtual JsonResult ResponseSuccess <T>(T data, int count = 1) => JsonResultFormat.ResponseSuccess(data, count);
/// <summary> /// Json通用返回格式:返回成功 /// </summary> /// <returns> /// Json格式 : {code:0,data:"",count:0,message:Success} /// </returns> protected virtual JsonResult ResponseSuccess() => JsonResultFormat.ResponseSuccess();
/// <summary> /// Json通用网格返回格式:返回成功 /// </summary> /// <param name="dataTable"><see cref="DataTable"/></param> /// <param name="count">数据量(默认为 <see cref="DataTable.Rows"/> 的Count)</param> /// <returns> /// Json格式 : {code:0,rows:DataTable,total:DataTable.Rows.Count,message:Success} /// </returns> protected virtual JsonResult ResponseGridResult(DataTable dataTable, int count = 0) => JsonResultFormat.ResponseGridResult(dataTable, count);
/// <summary> /// Json通用网格返回格式:返回成功 /// </summary> /// <param name="list"><see cref="List{T}"/></param> /// <param name="count">数据量(默认为 <see cref="List{T}.Count"/>)</param> /// <returns> /// Json格式 : {code:0,rows:List,total:List.Count(),message:Success} /// </returns> protected virtual JsonResult ResponseGridResult <T>(List <T> list, int count = 0) => JsonResultFormat.ResponseGridResult(list, count);
/// <summary> /// Json通用网格返回格式:返回成功 /// </summary> /// <param name="data">数据</param> /// <param name="count">数据量(默认为1,数据为null则为0)</param> /// <returns> /// Json格式 : {code:0,rows:data,total:1,message:Success} /// </returns> protected virtual JsonResult ResponseGridResult <T>(T data, int count = 1) => JsonResultFormat.ResponseGridResult(data, count);