当前位置: 首页 > 图文教程 > 网络编程 > ASP.NET > asp.net验证码生成类(参考)

ASP.NET
asp.net服务器上几种常见异常的解决方案.
Asp.net 下载功能的解决方案
asp.net 页面传值的几个方法
asp.net Cookie跨域、虚拟目录等设置方法
aspnet_isapi.dll设置图文方法.net程序实现伪静态
ASP.NET Web应用程序的安全解决方案浅析
asp.net 图片的读写入库实现代码
asp.net cookie的读写实例
浅析ASP.NET生成随机密码函数
asp.net 防止用户通过后退按钮重复提交表单
ASP.NET 调用百度搜索引擎的代码
asp.net用url重写URLReWriter实现任意二级域名 新
asp.net用url重写URLReWriter实现任意二级域名 高级篇
asp.net 下载文件时根据MIME类型自动判断保存文件的扩展名
asp.net 文件上传 实时进度
asp.net+jquery Gridview的多行拖放, 以及跨控件拖放
ASP.NET 页面之间传递值方式优缺点比较
asp.net 页面转向 Response.Redirect, Server.Transfer, Server.Execute的区别
ASP.NET 返回随机数实现代码
asp.net FreeTextBox配置详解

ASP.NET 中的 asp.net验证码生成类(参考)


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-11-03   浏览: 40 ::
收藏到网摘: n/a


/**********************Created by Chen**************************
*如果你觉得本人的文章好,要引用请尊重著作人的劳动果实,说明
*出处以及原创作者,Thank you!!! email:aishen944-sohu.com
*******************************************************************/using System;using System.Drawing;using System.Drawing.Imaging;using System.Web.UI;using System.Drawing.Drawing2D;using System.IO;namespace Validate{ /// /// 生成验证码的类 /// public class ValidateNumber { public ValidateNumber() { } /// /// 验证码的最大长度 /// public int MaxLength { get{return 10;} } /// /// 验证码的最小长度 /// public int MinLength { get{return 1;} } /// /// 生成验证码 /// ///
指定验证码的长度
/// public string CreateValidateNumber(int length) { int[] randMembers=new int[length]; int[] validateNums=new int[length]; string validateNumberStr=""; //生成起始序列值 int seekSeek=unchecked((int)DateTime.Now.Ticks); Random seekRand=new Random(seekSeek); int beginSeek=(int)seekRand.Next(0,Int32.MaxValue-length*10000); int[] seeks=new int[length]; for(int i=0;i /// 创建验证码的图片 /// ///

要输出到的page对象
///
验证码
public void CreateValidateGraphic(Page containsPage,string validateNum) { Bitmap image=new Bitmap((int)Math.Ceiling(validateNum.Length*12.5),22); Graphics g=Graphics.FromImage(image); try { //生成随机生成器 Random random=new Random(); //清空图片背景色 g.Clear(Color.White); //画图片的干扰线 for(int i=0;i<25;i++) { int x1=random.Next(image.Width); int x2=random.Next(image.Width); int y1=random.Next(image.Height); int y2=random.Next(image.Height); g.DrawLine(new Pen(Color.Silver),x1,y1,x2,y2); } Font font=new Font( ,12,(FontStyle.Bold|FontStyle.Italic)); LinearGradientBrush brush=new LinearGradientBrush(new Rectangle(0,0,image.Width,image.Height), Color.Blue,Color.DarkRed,1.2f,true); g.DrawString(validateNum,font,brush,3,2); //画图片的前景干扰点 for(int i=0;i<100;i++) { int x=random.Next(image.Width); int y=random.Next(image.Height); image.SetPixel(x,y,Color.FromArgb(random.Next())); } //画图片的边框线 g.DrawRectangle(new Pen(Color.Silver),0,0,image.Width-1,image.Height-1); //保存图片数据 MemoryStream stream=new MemoryStream(); image.Save(stream,ImageFormat.Jpeg); //输出图片 containsPage.Response.Clear(); containsPage.Response.ContentType="image/jpeg"; containsPage.Response.BinaryWrite(stream.ToArray()); } finally { g.Dispose(); image.Dispose(); } } /// /// 得到验证码图片的长度 /// ///
验证码的长度
/// public static int GetImageWidth(int validateNumLength) { return (int)(validateNumLength*12.5); } /// /// 得到验证码的高度 /// /// public static double GetImageHeight() { return 22.5; } }}