您的位置:首页 >> Web开发 >> ASP.NET >> ASP.Net教程 >> 正文
ASP.Net教程 RSS
 

Asp.net实现验证码功能的Web控件

http://www.rdxx.com 04年01月30日 09:14 互连网 我要投稿

关键词: 验证码 , 功能 , Web控件 , ASP.NET , .NET , 控件 , ASP , Web

      Asp.net的设计方式和设计理念和其他的如Asp,Jsp,Php,Perl

等都不一样,几乎是完全的面向对象设计!代码的复用就是其

中差异较大的特点之一,Asp.net除了可以用Include以外,还提供

了比较有特点的Web控件,包括:Ascx形式和带设计时支持的控

件[本文属于后者],为了熟悉这些新概念,我自己写了个Web控件。

在实际项目中运行使用良好,以后,要有时间,我还将不断改进。

ValidateCode控件的使用方法:

第一步:

编译我提供的原代码, 然后,在Studio.net 2003工具栏上, 选择"添加/移除项", 选中编译好的dll文件。

第二步:

工具栏上就会多一个Web控件ValidateCode,做好一个Web窗体,在Studio.net 2003开发界面上,直接把控件拖到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.Drawing2D;
using System.Drawing.Imaging;

namespace WebValidateCode
{
 /// <summary>
 /// ValidateCode 的摘要说明。
 /// 设计者:王海波 2004-11-20
 /// </summary>
 ///
 public enum GraphicType
 {
  Jpg = 0,
  Gif = 1,
  Png = 2,
  Bmp = 3,
 }

 
 //[ToolboxBitmap(@"D:\DotnetApp\ValidateCode\ValidateCode.bmp") ] //设置控件在工具箱上的图标
 public class ValidateCode : System.Web.UI.WebControls.WebControl ,INamingContainer
 {
  private int pCodelen=5;
  private int pChartWidth=100;
  private int pChartHeight=20;

  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("需要验证码的长度,建议在5~8位之间!")]
  public int CodeLength

上一页 下一页


 
 
标签: 验证码 , 功能 , Web控件 , ASP.NET , .NET , 控件 , ASP , Web 打印本文
 
 
  热点搜索
 
 
 



Valid XHTML 1.0 Transitional
Copyright ©2005 - 2008 Rdxx.Com,All Rights Reserved
收藏本页
收藏本站