/// <summary> /// 身份合法验证 /// match_signature:加密签名 /// match_timestamp:时间戳 /// match_nonce:1-20个随机数字字符 /// </summary> /// <param name="actionContext"></param> public override void OnAuthorization(HttpActionContext actionContext) { #region 1. 判断是否登录合法用户 if (actionContext.ActionDescriptor.ControllerDescriptor .GetCustomAttributes <HCQ2_Common.Attributes.SkipApiAttribute>(false).Count == 0) { //控制器未加登录排除特性 需要验证是否登录 string userid = HttpContext.Current.Request[AuthorityConstant.USER_ID];//用户编码 userid = (string.IsNullOrEmpty(userid)) ? HttpContext.Current.Request.Headers[AuthorityConstant.USER_ID] : userid; userid = (string.IsNullOrEmpty(userid)) ? HttpContext.Current.Request.Form[AuthorityConstant.USER_ID] : userid; if (string.IsNullOrEmpty(userid)) { System.IO.Stream postData = HttpContext.Current.Request.InputStream; System.IO.StreamReader sreader = new System.IO.StreamReader(postData); string postContext = sreader.ReadToEnd(); //sreader.Close(); if (!string.IsNullOrEmpty(postContext) && postContext.IndexOf(AuthorityConstant.USER_ID) > -1) { HCQ2_Model.WebApiModel.ParamModel.CheckLoginBaseModel model = JsonHelper.JsonStrToObject <HCQ2_Model.WebApiModel.ParamModel.CheckLoginBaseModel>( postContext); userid = model.userid; } } if (string.IsNullOrEmpty(userid)) { //如果取不到身份验证信息,并且不允许匿名访问,则返回未验证401 actionContext.Response = actionContext.Request.CreateResponse(HttpStatusCode.OK, new HCQ2_Model.ViewModel.WebAPI.WebApiResultJsonModel() { errcode = WebResultCode.Error, errmsg = "非法用户~", value = null }); } else { //验证是否合法登录用户 HCQ2_Model.Bane_User user = OperateContext.Current.bllSession.Bane_User.Select(s => s.user_guid == userid).FirstOrDefault(); if (null == user) { actionContext.Response = actionContext.Request.CreateResponse(HttpStatusCode.OK, new HCQ2_Model.ViewModel.WebAPI.WebApiResultJsonModel() { errcode = WebResultCode.Error, errmsg = "非法用户~", value = null }); } } } #endregion }
public object SubRandomAnswer(SubmitAnswerModel bane) { if (!ModelState.IsValid) { return(OperateContext.Current.RedirectWebApi( WebResultCode.Exception, "参数验证失败", null)); } //返回数据 int core; int score = operateContext.bllSession.Bane_QuestionInfo.CheckAnswer(bane.options, SysPermissSession.ChangeIdByGuid(bane.userid), out core); //更新答题次数 HCQ2_Model.Bane_User user = operateContext.bllSession.Bane_User.Select(s => s.user_guid == bane.userid).FirstOrDefault(); int num = user.the_num + 1, tcore = user.user_total + core; operateContext.bllSession.Bane_User.Modify(new HCQ2_Model.Bane_User { the_num = num, user_total = tcore }, s => s.user_guid == bane.userid, "the_num", "the_score"); string title = (score > 89) ? "恭喜您通过考核,每周只有第一次合格才能获得积分~" : "很遗憾您未通过考核~"; return(OperateContext.Current.RedirectWebApi(WebResultCode.Ok, title, score)); }