网站导航免费论文 原创论文 论文搜索 原创论文 网学软件 学术大家 资料中心 会员中心 问题解答 原创论文 大学论文导航 设计下载 最新论文 下载排行 原创论文 论文源代码
返回网学首页
网学联系
最新论文 推荐专题 热门论文 素材专题
当前位置: 网学 > 编程文档 > ASP.net > 正文

ASP.NET 实现验证码功能的Web控件

来源:http://myeducs.cn 联系QQ:点击这里给我发消息 作者: 用户投稿 来源: 网络 发布时间: 12/10/12

  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
  {
  get
  {
  return pCodelen;
  }
  
  set
  {
  pCodelen = value;
  }
  }
  
  //生成校验码的长度
  [Bindable(true),Browsable(true),Category("Appearance"),DefaultValue(true),Description("生成验证码图片的临时存放路径,要求必须是网站下的虚拟目录!")]
  public string TempImageURLPath
  {
  get
  {
  return pTempImageURLPath;

网学推荐

免费论文

原创论文

设为首页 | 加入收藏 | 论文首页 | 论文专题 | 设计下载 | 网学软件 | 论文模板 | 论文资源 | 程序设计 | 关于网学 | 站内搜索 | 网学留言 | 友情链接 | 资料中心
版权所有 QQ:3710167 邮箱:3710167@qq.com 网学网 [Myeducs.cn] 您电脑的分辨率是 像素
Copyright 2008-2015 myeducs.Cn www.myeducs.Cn All Rights Reserved 湘ICP备09003080号