标题 | 生成ASP.NET网站验证码教学案例探讨 |
范文 | 谢彬彬 [摘? ? ? ? ? ?要]? ASP.NET动态网站开发是一门综合性很强的实践课程,其中图片验证码技术是该课程的重难点之一。针对中职学校学生的学习基础相对较为薄弱,通过任务驱动,使学生逐步深入,掌握如何调用预定义类生成验证码并在网页中插入生成的验证码图片。从而降低学习难度,为中职学校Asp.net动态网站开发的教学提供一种思路。 [关? ? 键? ?词]? ASP.NET;验证码;教学案例;任务驱动 [中图分类号]? G712? ? ? ? ? ? ? ?[文献标志码]? A? ? ? ? ? ? ? ? ? ? ? [文章编号]? 2096-0603(2019)28-0099-03 ASP.NET动态网站开发课程是我校软件与信息服务专业的职业能力核心课程,该课程是对学生之前学习的C#程序设计、数据库设计基础、网页设计等课程的综合应用,是一门综合性、实践性和难度都较高的课程。该课程主要包含的内容有服务器控件、内置服务器对象的使用、ADO.NET操作数据库等技术。 图片验证码是一串为了防止恶意程序进行暴力破解密码等关键信息,由服务器端按一定算法生成的数字或字符,并将该验证码生成一幅图片,再对图片进行干扰处理[1]。验证码是动态网站开发中广泛使用且非常重要的一種安全技术,因此也是本课程的重点与难点之一。 本文的教学案例针对中职学生的学习基础相对较为薄弱,通过任务驱动设置了三个课堂任务,使学生逐步深入,掌握如何调用预定义类生成验证码并在网页中插入生成的验证码图片,从而降低了学习难度,为中职ASP.NET动态网站开发的教学提供了一种思路。 一、教学案例设计思想 在教学案例的设计上,以“任务驱动式”、学生自主协作探究学习来进行设计。 1.教学过程逐渐深入,结合中职学生的实际情况,让学生在实践中掌握所学知识的同时,通过小组讨论问题,培养学生独立分析问题、解决问题的能力。 2.由教师根据学习任务先进行讲解与引导教学,通过任务驱动,让学生分组进行程序开发,通过学生自主协作探究体会影响验证码被破解的因素,同时认识到在实际开发中需要考虑安全与用户体验相结合[2]。 3.根据中职学生的学习基础,提供常见的验证码核心类代码,体会调用代码生成验证码的过程,避免直接开发验证码,从而降低学习的难度。 4.学生评价上,通过网页实时显示学生生成的验证码图片,采用直观方式来显示程序的执行效果,能够及时评估学生完成的情况,使师生得到及时反馈。 二、教学重点与难点 本案例中的教学重点是让学生掌握如何调用验证码核心类生成验证码。 教学的难点是: 1.理解生成验证码的底层代码原理。由于中职学生的基础相对薄弱,生成验证码的底层代码中涉及GDI、图片文件操作等,而学生只有理解其基本原理才能正确使用。 2.如何将生成的验证码应用到实际网页开发中。仅仅调用底层代码生成验证码图片并不等于整个页面就开发好了,还需要结合具体实例让学生掌握完整的页面开发以及其中需要考虑的问题。 三、生成验证码的核心类介绍 在提供给学生的生成验证码VerificationCode类中包含的核心方法:CreateVerificationGraphic(string verificationCode,HttpContext context,int lineCount=25,int pointCount=100)[3]。该方法将生成的包含随机数字的字符串输出为图片[4]。参数VerificationCode是调用CreateVerificationCode(int length)方法生成的包含随机数字的字符串。参数context是用户通过浏览器请求数据时发送的请求报文。参数lineCount是绘制干扰线的数量,默认是25条。参数pointCount是绘制干扰点的数量,默认是100个。执行该方法时,除了将生成的包含随机数字的字符串输出为图片外,为了降低验证码图片被恶意程序识别的几率,还需在验证码图片上绘制若干随机位置的干扰线、干扰点,参考关键代码片段如图1所示。 四、具体教学案例设计 (一)案例描述 在进行验证码开发的教学中,由于学生首次接触,且中职学生的专业基础相对薄弱,故要求学生直接开发验证码的难度较大。而且验证码开发的技术本身是属于比较常见的一种技术,因此在本案例中将会提供生成验证码的底层代码给学生,学生重点掌握如何调用、使用现有的验证码核心类生成验证码并应用到网页上。 (二)任务划分 本案例将教学内容分解为三个学习任务,让学生由浅入深掌握生成验证码的开发。 1.任务1:调用验证码核心类生成验证码图片 由生活中常见的验证码图片引入本课题,教师讲解验证码的基本原理以及生成验证码VerificationCode类中的核心方法,为了使学生更好地掌握生成验证码的基本原理,使用ASP.NET自带的Random类产生四位数的随机数,引导学生根据微课自主学习,将教师提供的VerificationCode类加入项目中,新建一个ASP.NET一般处理程序,尝试调用VerificationCode类中的核心方法生成验证码图片。右图是参考代码。 在对学生完成本学习任务的评价上,要求学生将生成的验证码图片保存并提交到FTP的指定路径下,由教师端制作的网页实时读取并显示学生生成的验证码图片,如图2所示。教师可以结合学生完成的情况进行评价、讲解,学生的学习结果也可以马上得到及时的反馈。 课堂讨论环节:学生完成上述学习任务后,引导学生思考:使用ASP.NET自带的Random类产生随机数验证码有什么局限性?影响验证码被破解的因素有哪些? 2.任务2:探究影响验证码被破解的因素 提前将学生分成若干组使用不同的参数调用CreateVerificationGraphic方法生成验证码,每组参数生成3张验证码,通过微信扫一扫翻译的方式“破解”验证码,分别记录下人眼识别、微信翻译识别的验证码,最后通过探究尝试写出自己认为最合适的参数,以直观的方式探究影响验证码被破解的因素。 第一组参数:即任务1中使用默认参数生成的验证码图片,绘制干扰线的数量为25,绘制干扰点的数量为100,如图3所示。 第二组参数:绘制干扰线的数量为0,绘制干扰点的數量为0,即没有干扰线、干扰点,如图4所示。 第三组参数:绘制干扰线的数量为50,绘制干扰点的数量为200,如图5所示。 第四组参数:绘制干扰线的数量为100,绘制干扰点的数量为400,如图6所示。 通过完成这项任务,加深学生对如何调用生成验证码底层代码的理解,体会从哪些角度去提高验证码的安全性,了解验证码的生成需要根据实际情况兼顾安全性与用户体验。 课堂讨论环节:学生完成上述学习任务后,引导学生思考:如何将验证码图片加入网页中? 3.任务3:将验证码图片加入网页中 通过完成前面两个任务,学生掌握了通过调用预定义类生成验证码。接着,由教师提供一个登录页面的素材,引导学生将前端页面整合进项目中。在前端页面中,将验证码位置处的Image控件的ImageUrl设置为上述的一般处理程序即可,效果如图7所示。通过完成这个任务,使学生掌握如何将验证码图片插入到网页当中。 扩展任务:在验证码旁边添加“看不清?换一张”的链接,实现点击链接在不刷新页面的情况下重新加载验证码。结合实际中常见的功能,通过扩展任务引导学有余力的学生进一步思考延伸开发有实际应用意义的切换验证码图片功能。 通过完成上述三个任务,学生基本掌握了如何调用预定义类生成验证码图片,通过自主探究了解到影响验证码破解的因素,掌握了如何在网页中插入生成的验证码图片。 五、结束语 本案例通过任务驱动设置了三个课堂任务,使学生逐步深入,掌握如何调用预定义类生成验证码并在网页中插入生成的验证码图片。本案例为中职学校ASP.NET动态网站开发课程教学提供了一种思路,例如对于ADO.NET操作数据库中SqlHelper类的使用,考虑到中职学生的基础,也可以结合一些案例让学生从中学会如何调用已有封装好的类来实现功能,从而降低学习难度,使学生更容易上手。 参考文献: [1]韩玉民.验证码技术研究及基于ASP.NET的实现[J].现代计算机(专业版),2009(8). [2]翁佩纯,马慧,张远海.以“任务驱动”的《面向对象程序设计》教学案例设计[J].现代计算机(专业版),2016(14):50-54. [3]panzemin1234.ASP.NET MVC实现网站验证码功能[EB/OL].http://blog.sina.com.cn/s/blog_5738dc350100lxns.html,2010-10-27. [4]国家863中部软件孵化器.ASP.NET从入门到精通[M].北京:人民邮电出版社,2015. ◎编辑 张 俐 |
随便看 |
|
科学优质学术资源、百科知识分享平台,免费提供知识科普、生活经验分享、中外学术论文、各类范文、学术文献、教学资料、学术期刊、会议、报纸、杂志、工具书等各类资源检索、在线阅读和软件app下载服务。