《网站验证码的设计与实现》由会员分享,可在线阅读,更多相关《网站验证码的设计与实现(16页珍藏版)》请在金锄头文库上搜索。
1、 沈 阳 理 工 大 学 课 程 设 计 专 用 纸 Noi沈阳理工大学摘 要网络对现实生活已经产生了非常大的影响,它在为我们提供了许许多多的方便和快捷的同时也为我们带来了一些问题。例如本案例讨论的安全登录问题。在网络中安全是一个不可忽视的问题,如果处理不好会多我们的财产和隐私带来巨大的威胁,所以不论用户还是网站的设计者都对这一问题十分重视。例如本案例中的验证码就是为了登陆安全所特别设计的。本次实训就是用 Visual C#.NET 语言和实际的操作来完成验证码的设计和实现。 沈 阳 理 工 大 学 课 程 设 计 专 用 纸 Noii沈阳理工大学目 录1 课程设计目的与要求 .12 设计分析
2、12.1 软件开发过程.12.2 流程图.73 程序代码94 调试结果.125 总结.146 参考文献.14 沈 阳 理 工 大 学 课 程 设 计 专 用 纸 No1沈阳理工大学1 课程设计目的与要求为了防止网站被非法登陆,网站一般通过验证码的方式,防止黑客用软件非法登陆。验证码一般采用干扰后的图像显示,人可以识别,但机器识别有困难。本案例用 Visual C#.NET 开发一个网站的验证码生成软件,并在网页上测试该软件的有效性2 设计分析2.1 软件开发过程1)建立网站打开 Visual C#.NET 2010,通过“文件”/“新建”/“网站” ,打开“新建网站”对话框,选择“ASP.NE
3、T 网站” ,在“Web 位置”选择保存网站的目录,单击确定按钮。如图所示。2)建立 ValidateImage.ashx 文件右击解决方案名称,在弹出的菜单中选择“新建项目” ,打开“添加新项”对话框,选择“一般处理程序” ,文件名称改为“ValidateImage.ashx” ,单击“添加”按钮。如图所示。 沈 阳 理 工 大 学 课 程 设 计 专 用 纸 No2沈阳理工大学3)写入代码在 ValidateImage.ashx 中写入随机生成验证码的代码如图所示。 沈 阳 理 工 大 学 课 程 设 计 专 用 纸 No3沈阳理工大学4)建立测试验证码的链接在解决方案上右击,选择“添加新
4、项” ,然后选择“Web 窗体”模板,名称为“loginform.aspx” ,单击“添加”按钮。如图所示。 沈 阳 理 工 大 学 课 程 设 计 专 用 纸 No4沈阳理工大学在 loginform.aspx 窗体中放入多个控件。控件说明如下:1. Label 控件,名称 Label1,text 属性为“用户名” ;2. TextBox 控件,名称 TextBox1;3. Label 控件,名称 Label2,text 属性为“密码” ;4. TextBox 控件,名称为 TextBox2;TextMode 为“password” ;5. Label 控件,名称为 Label3,text
5、属性为“验证码” ;6. TextBox 控件,名称为 TextBox3;7. Image 控件,名称为 Image1,ImageUrl 属性设置为 ValidateImage.ashx;8. HyperLink 控件,名称为 HyperLink1,Text 属性为“看不清,换一张” ,NavigateUrl 设置为 loginform.aspx;9. Button 控件,名称为 Button1,Text 属性为“提交” 。如图所示。 沈 阳 理 工 大 学 课 程 设 计 专 用 纸 No5沈阳理工大学5)调试验证码输入界面在 logoinform.aspx 中选择“设计” ,调整界面。如图
6、所示。6)完成验证码输入成功或失败的显示双击 loginform.aspx 中的提交按钮,进入按钮的响应事件处理程序。加入检验输入验证码是否正确的代码。如图所示。 沈 阳 理 工 大 学 课 程 设 计 专 用 纸 No6沈阳理工大学7)在网站主页建立一个连接到登陆页面的链接在 default.aspx 主页上添加 loginform 的链接。在主页上加入 HyperLink 控件,其 NavigateUrl置为 loignform.aspx。如图所示。 沈 阳 理 工 大 学 课 程 设 计 专 用 纸 No7沈阳理工大学2.1 流程图1) 总功能图网站验证码的设计与实现输入验证码验证码是否
7、正确的显示随机生成验证码2)验证码正确性验证开始输入验证码输入数据与给定验证码是否相等验证成功 验证失败是 否结束 沈 阳 理 工 大 学 课 程 设 计 专 用 纸 No8沈阳理工大学3)随机产生验证码开始定义验证码 VcodeNum生成验证码iusing System;using System.Web;using System.IO;using System.Drawing;public class ValidateImage : IHttpHandler,System.Web.SessionState.IRequiresSessionStatepublic void ProcessReq
8、uest (HttpContext context) context.Response.Cache.SetCacheability(HttpCacheability.NoCache);string valid = ; / 定义随机数字/生成包含验证码的图片MemoryStream ms = Create(out valid);/ 存储在 session 中的验证码,用于验证context.SessionvalidateImage = valid;/置空输出流context.Response.ClearContent();/输出流格式context.Response.ContentType =
9、image/png;/输出context.Response.BinaryWrite(ms.ToArray();context.Response.End();public bool IsReusable get return false;/用来产生 2 位数的随机数分配的方法private string RndNum(int VcodeNum)string Vchar = 1,2,3,4,5,6,7,8,9,a,b,c,d,e,f,g,h,i,j,k,m,n,p,q +,r,s,t,u,v,w,x,y,z,A,B,C,D,E,F,G,H,J,K,L,M,N,P,Q,R,S,T,U,V,W,X,Y
10、,Z;/ 拆分到数组中string VcArray = Vchar.Split(new Char , );/ 收集随机数string VNum = ;/ 记录最后随机值,尽量避免同一随机数int temp = -1;Random rand = new Random(); 沈 阳 理 工 大 学 课 程 设 计 专 用 纸 No10沈阳理工大学/ 通过一个简单的算法,以确保不同的随机编号for (int i = 1; i +SessionvalidateImage); 沈 阳 理 工 大 学 课 程 设 计 专 用 纸 No12沈阳理工大学4 调试结果4.1 ASP.NET 主页 4.2 登陆主
11、页 进入登陆主页面登陆失败 沈 阳 理 工 大 学 课 程 设 计 专 用 纸 No13沈阳理工大学登陆成功 沈 阳 理 工 大 学 课 程 设 计 专 用 纸 No14沈阳理工大学5 总结在这一周的时间里,我通过这次的实训加强了自己掌握和理解 C#原理和用法的能力,培养了自己的实际动手能力与综合设计能力,并提高了自己的技术素质。实训一向是我比较喜欢的实践项目,因为从中学到许多东西,既体验了我们前段时间理论知识的学习效果,又锻炼了我的动手实践能力。通过这次实训,本人在多方面都有所提高生独立工作能力,在这次设计过程中,体会了学以致用、突出自己劳动成果的喜悦心情,从中发现自己平时学习的不足和薄弱环节,从而加以弥补。实训为我们提供了一个既动手动脑,独立参加实践的好机会,要求我们将理论知识和实际情况有机地结合起来,锻炼我们的分析问题,解决实际问题的能力,提高我们适应实际,实践的能力;它也要求我们综合运用所学的计算机网络知识来解决有一点难度的问题,从而提高了我们对知识的综合运用能力,加深对知识间的融会贯通和联系的理解。实训是我们专业课程知识综合应用的实践训练,着是我们迈向社会,从事职业工作前一个必不少的过程我今天认真的进行实训,学会脚踏实地迈开这一步,就是为明天能稳健地在社会大潮中奔跑打下坚实的基础 6 参考文献1 网站验证码的设计与实现开发案例