/// <summary> /// 创建返回信息 /// </summary> /// <param name="response"></param> /// <returns></returns> private HttpResponseMessage MakeResponse(BaseDtoResp response) { HttpResponseMessage Response = new HttpResponseMessage() { Content = new StringContent(JsonConvert.SerializeObject(response), System.Text.Encoding.GetEncoding("UTF-8"), "application/json"), StatusCode = HttpStatusCode.Unauthorized }; return(Response); }
/// <summary> /// 授权认证 /// </summary> /// <param name="actionContext"></param> public override void OnAuthorization(HttpActionContext actionContext) { BaseDtoResp resp = new BaseDtoResp(); //如果用户方位的Action带有AllowAnonymousAttribute,则不进行授权验证 IsValidation=false也不进行验证 var result = actionContext.ActionDescriptor.GetCustomAttributes <BaseAuthorizeAttribute>().Any(p => p.IsValidation == false); var result2 = actionContext.ActionDescriptor.GetCustomAttributes <BaseAuthorizeAttribute>().Any(p => p.IsValidation == true); //如果有AllowAnonymousAttribute不进行权限验证 if (actionContext.ActionDescriptor.GetCustomAttributes <AllowAnonymousAttribute>().Any()) { return; } //如果有IsValidation == false不进行权限验证 if (actionContext.ActionDescriptor.GetCustomAttributes <BaseAuthorizeAttribute>().Any(p => p.IsValidation == false)) { return; } //域名认证 resp = AuthorizeDoMain(actionContext.Request); if (!resp.IsSuccess) { actionContext.Response = MakeResponse(resp); } //IP认证 resp = AuthorizeIP(); if (!resp.IsSuccess) { actionContext.Response = MakeResponse(resp); } //Token认证 resp = AuthorizeToken(actionContext.Request); if (!resp.IsSuccess) { actionContext.Response = MakeResponse(resp); } #region //var verifyResult = actionContext.Request.Headers.Authorization != null && //要求请求中需要带有Authorization头 // actionContext.Request.Headers.Authorization.Parameter == "123456"; //并且Authorization参数为123456则验证通过 //if (!verifyResult) //{ // //如果验证不通过,则返回401错误,并且Body中写入错误原因 // //actionContext.Response = actionContext.Request.CreateErrorResponse(HttpStatusCode.Unauthorized, new HttpError("Token 不正确")); //} #endregion }
/// <summary> /// 创建返回信息 /// </summary> /// <param name="Msg"></param> /// <returns></returns> private HttpResponseMessage MakeResponse(string Msg) { BaseDtoResp response = new BaseDtoResp() { Msg = Msg }; HttpResponseMessage Response = new HttpResponseMessage(HttpStatusCode.Accepted) { Content = new StringContent(JsonConvert.SerializeObject(response), System.Text.Encoding.GetEncoding("UTF-8"), "application/json")//, "application/json" }; return(Response); }
public static BaseDtoResp <T> ExecuteObjects <T>(string SQLString) { using (MySqlConnection conn = new MySqlConnection(GetConnectionString())) using (MySqlCommand cmd = conn.CreateCommand()) { conn.Open(); cmd.CommandText = SQLString; BaseDtoResp <T> resp = new BaseDtoResp <T>(); resp.Msg = conn.ConnectionString; resp.Data = AutoMapper.Mapper.DynamicMap <T>(cmd.ExecuteReader()); return(resp); } }
public ActionResult BuyProduct(BuyProductDto dto) { var data = RedisCacheHelper.Get <List <ProductDto> >("productlist"); ViewData["ServerIP"] = $"服务器IP={IPHepler.GetLocalIP()}"; var count = RedisCacheHelper.Decrement(dto.ProductID.ToString(), dto.BuyCount); BaseDtoResp <string> resp = new BaseDtoResp <string>(); if (count >= 0) { resp.IsSuccess = MysqlHelper.ExecuteSql($"update Product set count=count-{dto.BuyCount} where ID={dto.ProductID}") > 0; resp.Msg = "商品购买成功"; } else { resp.Msg = "商品已卖完"; } //RedisCacheHelper.Add<Student>(stu.NO, stu, DateTime.Now.AddMinutes(15)); return(Json(resp)); }