HTML5技术

MVC伪一个12306图片验证码 - 神牛步行3(3)

字号+ 作者:H5之家 来源:H5之家 2017-01-18 12:03 我要评论( )

获取图片验证码文字 JsonResult GetChoiceCode() 6 { 7 var data = new Stage.Com.Extend.StageModel.MoData(); imgCode = ValidateCode.GetInitImgCode(); ; Json(data); } 11 12 data.Data = imgCode.IndexType;

获取图片验证码文字 JsonResult GetChoiceCode() 6 { 7 var data = new Stage.Com.Extend.StageModel.MoData(); imgCode = ValidateCode.GetInitImgCode(); ; Json(data); } 11 12 data.Data = imgCode.IndexType; 13 data.IsOk = true; Json(data); 16 } 获取验证码图片 FileResult GetValidateCode06() 24 { imgCode = new List<MoImgCode>(); 27 var bb_code = ValidateCode.CreateImgValidateStream(code, ref imgCode, strLen: 8); choiceList = imgCode.Where(b => b.IsChoice).ToList(); ; 31 if (Session[key] != null) 32 { 33 Session.Remove(key); 34 } 35 Session.Add(key, JsonConvert.SerializeObject(choiceList)); File(bb_code, ); 38 }

图片方法中用到了 Session.Add(key, JsonConvert.SerializeObject(choiceList)); 在获取生成的图片验证码后用session保存对应的待匹配(需要用户选择的验证码图片类型,也就是“企鹅”对应的图片)的验证码坐标,用户在用户提交操作按钮(我这是登录)的时候用于匹配,因此就有了如下在登录时候匹配用户提交的坐标验证码代码如下:

1 [HttpPost] 2 public JsonResult UserLogin01(string code) 3 { 4 var data = new Stage.Com.Extend.StageModel.MoData(); (; return Json(data); } ] == ; return Json(data); } ].ToString()); ; return Json(data); } codeArr = code.Split( }, StringSplitOptions.RemoveEmptyEntries); 13 foreach (var item in codeArr) 14 { ); ; break; } x = Convert.ToInt32(itemArr[0]); 19 var y = Convert.ToInt32(itemArr[1]); codeItem = compareImgCode. 22 Where(b => b.IsChoice). 23 Where(b => 24 (b.Point_B.X > x && b.Point_B.Y > y) && 25 (b.Point_A.X < x && b.Point_A.Y < y)). 26 SingleOrDefault(); ; break; } codeItem.IsChoice = false; 31 } 32 if (!string.IsNullOrWhiteSpace(data.Msg)) { return Json(data); } (compareImgCode.Any(b => b.IsChoice)) { data.Msg = ; return Json(data); } 35 36 data.IsOk = true; ; 38 return Json(data); 39 }

通过坐标的范围来确定用户选择的哪个小图片,这和传递验证码直接对比用户输入的信息和session保存的验证码信息对比逻辑差不多,只是图片验证码让第三方的一些识别软件很难破解,这里不得不说当初设计此验证码的大佬们的nb;下面我们再来看下mvc中的view中我代码是怎么写的:

1 <td> style=></span>”,<a style=id=>重获验证码</a><br /> style=> data-src=/> 5 </div> =>登 录</button> style=></span> 9 </td>

 

1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

相关文章
  • 利用Kaptcha.jar生成图片验证码(以下源码可以直接复制并自定义修改) - 万元户jhg

    利用Kaptcha.jar生成图片验证码(以下源码可以直接复制并自定义修改

    2017-01-18 10:00

  • 一个想法:成立草根技术联盟对开发人员进行技术定级解决企业员工招聘难问题! - 路过秋天

    一个想法:成立草根技术联盟对开发人员进行技术定级解决企业员工招聘

    2017-01-08 10:00

  • 一个简单粗暴的人脸认证标注工具的实现 - 喵耳朵

    一个简单粗暴的人脸认证标注工具的实现 - 喵耳朵

    2017-01-05 11:01

  • iosselect:一个js picker项目,在H5中实现IOS的select下拉框效果 - mufc-go

    iosselect:一个js picker项目,在H5中实现IOS的select下拉框效果 -

    2017-01-01 10:02

网友点评