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

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

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

  }
  
  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[0];
  //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.Format24bppRgb); // .Format24bppRgb);
  g = Graphics.FromImage(validateImage);
  
  g.Clear(Color.LightGray) ;
  
  //g.DrawString(strValidateCode , new Font("宋体",16,FontStyle.Bold),new SolidBrush(Color.DarkRed),new PointF(2,2));
  
  for(int i=0;i<strValidateCode.Length;i++)
  {
  Random r = new Random();
  PointF startPos=new PointF(r.Next(3,6)+(r.Next(12,14)*i ),r.Next(-1,2) );
  
  g.DrawString(strValidateCode.Substring(i,1) , new Font("宋体",14,FontStyle.Italic),new SolidBrush(Color.Blue),startPos);
  }
  
  
  //g.FillRectangle(new LinearGradientBrush(new Point(0,0), new Point(120,30), Color.F

网学推荐

免费论文

原创论文

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