示例#1
0
        /// <summary>
        /// 校验图片验证码是否正确
        /// </summary>
        /// <param name="piccode"></param>
        /// <returns></returns>
        public JsonResult CheckPicCode([FromBody] CheckPicCodeViewModel piccode)
        {
            JsonResult <bool> result = new JsonResult <bool>();

            result.code = 1;
            result.msg  = "OK";
            if (piccode == null)
            {
                result.Result    = false;
                result.ResultMsg = "参数错误";
                return(Json(result, JsonRequestBehavior.AllowGet));
            }

            bool flag = false;

            if (Session["codepic"] != null && Session["fontSize"] != null)
            {
                int      fontSize = Session["fontSize"].ToZMInt32();
                string   codepic  = Session["codepic"].ToString();
                string[] pics     = codepic.Split(',');
                var      ab1      = Math.Abs(pics[0].ToZMInt32() - piccode.x1);
                var      ab2      = Math.Abs(pics[1].ToZMInt32() - piccode.y1);
                var      ab3      = Math.Abs(pics[2].ToZMInt32() - piccode.x2);
                var      ab4      = Math.Abs(pics[3].ToZMInt32() - piccode.y2);
                var      ab5      = Math.Abs(pics[4].ToZMInt32() - piccode.x3);
                var      ab6      = Math.Abs(pics[5].ToZMInt32() - piccode.y3);
                var      ab7      = Math.Abs(pics[6].ToZMInt32() - piccode.x4);
                var      ab8      = Math.Abs(pics[7].ToZMInt32() - piccode.y4);
                if (ab1 > fontSize || ab2 > fontSize ||
                    ab3 > fontSize || ab4 > fontSize ||
                    ab5 > fontSize || ab6 > fontSize ||
                    ab7 > fontSize || ab8 > fontSize)
                {
                    flag             = false;
                    result.ResultMsg = "验证码错误";
                }
                else
                {
                    flag             = true;
                    result.ResultMsg = "验证码正确";
                }
            }
            else
            {
                flag             = false;
                result.ResultMsg = "验证码已过期";
            }
            result.Result = flag;
            return(Json(result, JsonRequestBehavior.AllowGet));
        }
        public async Task <IHttpActionResult> CheckPicCode([FromBody] CheckPicCodeViewModel piccode)
        {
            JsonResult <bool> result = new JsonResult <bool>();

            result.code = 1;
            result.msg  = "OK";
            if (piccode == null)
            {
                result.Result    = false;
                result.ResultMsg = "参数错误";
                return(Ok(result));
            }

            if (string.IsNullOrEmpty(piccode.token) || !RedisBase.ContainsKey(piccode.token))
            {
                result.Result    = false;
                result.ResultMsg = "验证码已过期";
                return(Ok(result));
            }
            result.Result = await Task.Run <bool>(() => {
                bool flag          = false;
                VerCodePic codepic = RedisBase.Item_Get <VerCodePic>(piccode.token);
                if (Math.Abs(codepic.Font1.X - piccode.x1) > 0.5 || Math.Abs(codepic.Font1.Y - piccode.y1) > 0.5 ||
                    Math.Abs(codepic.Font2.X - piccode.x2) > 0.5 || Math.Abs(codepic.Font2.Y - piccode.y2) > 0.5 ||
                    Math.Abs(codepic.Font3.X - piccode.x3) > 0.5 || Math.Abs(codepic.Font3.Y - piccode.y3) > 0.5 ||
                    Math.Abs(codepic.Font4.X - piccode.x4) > 0.5 || Math.Abs(codepic.Font4.Y - piccode.y4) > 0.5)
                {
                    flag             = false;
                    result.ResultMsg = "验证码错误";
                }
                else
                {
                    flag             = true;
                    result.ResultMsg = "验证码正确";
                }
                return(flag);
            });

            return(Ok(result));
        }