ImageVerifierCode 换一换
格式:DOCX , 页数:10 ,大小:272.77KB ,
资源ID:2819340      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/2819340.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(用C#实现网站验证码的实验报告.docx)为本站会员(b****3)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

用C#实现网站验证码的实验报告.docx

1、用C#实现网站验证码的实验报告目 录1. 软件设计要求和规范 22. 软件制作过程(含增加的功能) 23. 收获与体会 124. 参考文献 121. 软件设计要求和规范 为了防止网站被非法登陆,网站一般通过验证码的方式,防止黑客用软件非法登陆。验证码一般采用干扰后的图像显示,人可以识别,但机器识别有困难。本案例用Visual C#.NET开发一个网站的验证码生成软件,并在网页上测试该软件的有效性。2. 软件制作过程(含增加的功能)1. 打开Visual C#.NET 2010,通过“文件”/“新建”/“网站”,打开“新建网站”对话框,如图1所示。选择“ASP.NET网站”,在“Web位置”选择

2、保存网站的目录,单击确定按钮。图1 新建网站2. 建立ValidateImage.ashx文件右击解决方案名称,在弹出的菜单中选择“新建项目”,打开“添加新项”对话框,选择“一般处理程序”,文件名称改为“ValidateImage.ashx”,单击“添加”按钮。如图2所示。图2 添加.ashx程序打开ValidateImage.ashx文件,并按照下列代码输入程序。using System;using System.Web;using System.IO ;using System.Drawing;public class ValidateImage : IHttpHandler,System

3、.Web.SessionState.IRequiresSessionState public void ProcessRequest (HttpContext context) context.Response.Cache.SetCacheability(HttpCacheability.NoCache); string valid=;/定义随机数字 /生成包含验证码的图片 MemoryStream ms=Create(out valid); /存储在session中的验证码,用于验证 context.SessionvalidateImage=valid; /置空输出流 context.Res

4、ponse.ClearContent(); /输出流格式 context.Response.ContentType = 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,l,m,n,p,q+,

5、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,Z; / 拆分数组 string VcArray = Vchar.Split(new Char , ); / / 收集随机数 string VNum = ; /记录最后的随机数,尽量避免同一随机数 int temp = -1; Random rand = new Random(); /通过一个简单的算法,以确保不同随机编号 for (int i = 1; i VcodeNum+1;i+) if (temp != -1) rand = new Random(i * te

6、mp* unchecked(int)DateTime.Now.Ticks); int t = rand.Next(55); if (temp!=-1&temp=t) return RndNum(VcodeNum); temp=t; /随机数中位数加一 VNum+=VcArrayt; return VNum; /生成随机数,并将其写入图像文件 public MemoryStream Create(out string VNum) VNum=RndNum(3); Bitmap lmg=null; Graphics g=null; MemoryStream ms=null; System.Rando

7、m random=new Random(); Color c =Color.Black,Color.Red,Color.DarkBlue,Color.Green, Color.Brown,Color.DarkCyan,Color.Purple; Stringfonts=Verdana,Microsoft Sans Serif,Comic Sanns MS,Arial,宋体; lmg=new Bitmap(int)VNum.Length*18,32); g=Graphics.FromImage(lmg); g.Clear(Color.White); /在背景的随机位置画图 for(int i=0

8、;i100;i+) int x=random.Next(lmg.Width); int y=random.Next(lmg.Height); g.DrawRectangle(new Pen(Color.LightGray,0),x,y,1,1); /在g中映射验证码 for(int i=0;i + SessionvalidateImage); 5. 在default.aspx主页上添加loginform的链接。在主页上加入HyperLink控件,其NavigateUrl置为loignform.aspx。如图5所示。图5. 主页中增加链接,用于登陆附:增加的功能:(1)用表格定位各个控件,同时改

9、变各控件的背景颜色,使界面更美化如图6,7所示图6 先插入表格定位使界面更加美观图7 使界面更美观(2)验证码显示位数的增加,如图8所示VNum=RndNum(3); VNum=RndNum(7);(3)改变验证码背景颜色,增加验证码后不规则图形,使验证码识别难度加大,如图9所示g.Clear(Color.White); g.Clear(Color.Gray);int x = random.Next(Img.Width);int y = random.Next(Img.Height);g.DrawRectangle(new Pen(Color.LightGray, 0), x, 1, y, 1

10、);int x1 = random.Next(Img.Width);int x2 = random.Next(Img.Width);int y1 = random.Next(Img.Height); int y2 = random.Next(Img.Height);g.DrawRectangle(new Pen(Color.LightGray, 0), x1, x2, y1, y2);图9 增加验证码的识别难度3. 收获与体会 通过近两周的实训课程设计,我意识到自己还存在许多不足,在这次课程设计完成过程中我发现了自己的薄弱环节,并且在逐步完成任务的同时,我也渐渐解决了这些问题。 C#是一门功能非常强大的完全面向对象的语言。借助这种语言我们不仅能完成控制台的程序,还可以结合各种控件,制作成一个有界面的真正意义上的程序。在了解C#这门语言一段时间之后,我对C#产生了浓厚的兴趣,这更激发了我的学习热情。学习C#知识和操作的过程困难重重,产生困难的原因是因为以前对C#的认识不够,只是表面的一些东西,还有就是对软件的不熟悉。为了克服困难我在网上查找相关的内容,查找的相关的书籍,在同学的

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1