知识大全 ASP.NET 实现验证码功能的Web控件
Posted 知
篇首语:我永远要记得我所想要的。而不是我所恐惧的。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 ASP.NET 实现验证码功能的Web控件相关的知识,希望对你有一定的参考价值。
ASP.NET 实现验证码功能的Web控件 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!
的设计方式和设计理念和其他的如Asp Jsp Php Perl等都不一样 几乎是完全的面向对象设计!代码的复用就是其中差异较大的特点之一 除了可以用Include以外 还提供了比较有特点的Web控件 包括 Ascx形式和带设计时支持的控件[本文属于后者] 为了熟悉这些新概念 我自己写了个Web控件 在实际项目中运行使用良好 以后 要有时间 我还将不断改进 ValidateCode控件的使用方法: 第一步 编译我提供的原代码 然后 在 工具栏上 选择 添加/移除项 选中编译好的dll文件 第二步 工具栏上就会多一个Web控件ValidateCode 做好一个Web窗体 在 开发界面上 直接把控件拖到WebForm上 就OK! 第三步 在该控件的GraphicOK事件中获取 验证码的字符信息 用于和用户录入做比较! 最后一步 在网站的根目录下 建一个temp目录(也可以自己指定目录) 用于存放验证码 图片 不用担心 代码会自动删除无用的图片! 原代码如下 using System; using System Web UI; using System Web UI WebControls; using System ComponentModel; using System IO; using System Drawing; using System Drawing Drawing D; using System Drawing Imaging; namespace WebValidateCode /// <summary> /// ValidateCode 的摘要说明 /// 设计者:王海波 /// </summary> /// public enum GraphicType Jpg = Gif = Png = Bmp = //[ToolboxBitmap(@ D:\\DotnetApp\\ValidateCode\\ValidateCode bmp ) ] //设置控件在工具箱上的图标 public class ValidateCode : System Web UI WebControls WebControl INamingContainer private int pCodelen= ; private int pChartWidth= ; private int pChartHeight= ; private GraphicType pChartType; private string pAuthenCode; private string pTempImageURLPath= /temp ; private string pAuthenImageFullname; private string pAuthenImageFullURL; //生成校验码的变量 start private Bitmap validateImage; private Graphics g; //生成校验码的变量 End private TextBox txt=new TextBox(); private System Web UI WebControls Image img= new System Web UI WebControls Image(); #region 定义控件事件 public delegate void GraphicCreated(object sender EventArgs e); public event EventHandler GraphicOK; //在校验图片生成结束以后触发 protected virtual void OnGraphicOK(object sender EventArgs e) if (GraphicOK != null) //Invokes the delegates GraphicOK(sender e); #endregion #region 控件属性 //生成校验码的长度 [Bindable(true) Browsable(true) Category( Appearance ) DefaultValue(true) Description( 需要验证码的长度 建议在 ~ 位之间! )] public int CodeLength get return pCodelen; set pCodelen = value; //生成校验码的长度 [Bindable(true) Browsable(true) Category( Appearance ) DefaultValue(true) Description( 生成验证码图片的临时存放路径 要求必须是网站下的虚拟目录! )] public string TempImageURLPath get return pTempImageURLPath; set pTempImageURLPath = value; [Bindable(true) Browsable(true) Category( Appearance ) DefaultValue(GraphicType Jpg) Description( 选择生成校验图文件的类型(Jpg;Gif;Png;Bmp)! )] public GraphicType ChartType get return pChartType; set pChartType = value; //生成校验码图片的宽度 public int ChartWidth get return pChartWidth; set pChartWidth = value; //生成校验码图片的高度 public int ChartHeight get return pChartHeight; set pChartHeight = value; //需要生成的校验码 public string AuthenCode get return pAuthenCode; set pAuthenCode = value; #endregion /// <summary> /// 将此控件呈现给指定的输出参数 /// </summary> /// <param name= output > 要写出到的 HTML 编写器 </param> protected override void Render(HtmlTextWriter output) System Web UI WebControls Image objImage; //TextBox objTxt; //绘制包含的控件 objImage = (System Web UI WebControls Image) Controls[ ]; //objTxt = (TextBox) Controls[ ]; if(pAuthenCode==null) pAuthenCode=GetValidateCode(); OnGraphicOK(this EventArgs Empty ); GetRandomImage(pAuthenCode); objImage ImageUrl=pAuthenImageFullURL; objImage RenderControl(output); /// <summary> /// 给控件添加子控件 /// </summary> protected override void CreateChildControls( ) //Controls Add(btn); Controls Add(img); //Controls Add(txt); /// <summary> /// 控件Load时候属性的初始化 /// </summary> /// <param name= e ></param> protected override void OnLoad(System EventArgs e) EraseOldGraphic(); //删除过期的图片 /// <summary> /// 生成随机的 /// </summary> private void MakeRandomFileName() string strRandName=DateTime Now Ticks ToString()+ jpg ; pAuthenImageFullname=this Page MapPath(TempImageURLPath)+@ \\ +strRandName; pAuthenImageFullURL=TempImageURLPath+ / +strRandName; private void GetRandomImage(string strValidateCode) //生成随即图片的全名 和全URL MakeRandomFileName(); validateImage = new Bitmap(pChartWidth pChartHeight PixelFormat Format bppRgb); // Format bppRgb); g = Graphics FromImage(validateImage); g Clear(Color LightGray) ; //g DrawString(strValidateCode new Font( 宋体 FontStyle Bold) new SolidBrush(Color DarkRed) new PointF( )); for(int i= ;i<strValidateCode Length;i++) Random r = new Random(); PointF startPos=new PointF(r Next( )+(r Next( )*i ) r Next( ) ); g DrawString(strValidateCode Substring(i ) new Font( 宋体 FontStyle Italic) new SolidBrush(Color Blue) startPos); //g FillRectangle(new LinearGradientBrush(new Point( ) new Point( ) Color FromArgb( ) Color FromArgb( )) ); switch(pChartType) case GraphicType Jpg: validateImage Save(pAuthenImageFullname ImageFormat Jpeg); break; case GraphicType Gif: validateImage Save(pAuthenImageFullname ImageFormat Gif); break; case GraphicType Png: validateImage Save(pAuthenImageFullname ImageFormat Png); break; case GraphicType Bmp: validateImage Save(pAuthenImageFullname ImageFormat Bmp); break; default: validateImage Save(pAuthenImageFullname ImageFormat Jpeg); break; validateImage Dispose(); g Dispose(); /// <summary> /// 动态从数字和字母组成的元素中动态选择生成校验码 /// </summary> private string GetValidateCode() cha138/Article/program/net/201311/13574相关参考
在Asp.net(C#)中添加程序实现验证码功能 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!&n
ASP.NET验证码技术 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 验证码技术是目前很多WE
ASP.NET做验证码 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 显示验证码的界面前台<
ASP.NET验证码(.aspx) 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! usingSy
ASP.NET2.0服务器控件之验证控件示例 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 在上
基于ASP.NET的Web动态控件创建 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 摘要web
当Asp.Net验证控件遇到FCKeditor 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 使
ASP.NET常用6种验证控件介绍 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! Requi
ASP.NET开发中的验证码技术 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! &nbs
ASP.NET1.1验证码产生的原理及应用 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! ASP