中国站长下载-为中国站长提供最好最全的建站资源! 首 页发布资源有事留言繁體中文
设为首页
加入收藏
联系我们
 
您当前的位置:中国站长下载 -> 文章中心 -> 网页编程 -> .NET编程 -> 文章内容  虚拟主机 域名注册 退出登录 用户管理
栏目导航
· ASP编程 · .NET编程
· PHP编程 · JSP编程
· CGI 专区
热门文章
· sndvol32 - sndvol3...
· [组图] FLASH:《大话李白》...
· 个人网站到底能赚多...
· [图文] Rundll.exe是病毒吗...
· [组图] Flash:制作MV
· 价值12万元的网站SE...
· 网站创业者,你需要...
· 一个成功的网站设计...
· [图文] FLASH:韩国导航条解...
· 中国网站的赚钱模式...
相关文章
· ASP.NET的实时天气及...
· 基于C#的接口基础教...
· 基于C#的接口基础教...
· 基于C#的接口基础教...
· 基于C#的接口基础教...
· 基于C#的接口基础教...
· C#实现的18位身份证...
· [图文] asp.net中用C#实现站...
· 在ASP.NET中如何用C...
· 在ASP.Net中应用Jav...
在ASP.NET下实现数字和字符相混合的验证码(C#)
作者:不详  来源:不详  发布时间:2006-8-14 9:33:08  发布人:chinazhan

 减小字体 增大字体

     为了便于大家学习,修改VB.net code成为C#
  gif.ASPx文件修改的内容
  private void Page_Load(object sender, System.EventArgs e)
  {
  // 在此处放置用户代码以初始化页面
  // RndNum是一个自定义函数
  string VNum = RndNum(5);
  Session["VNum"] = VNum;
  ValidateCode(VNum);
  
  
  }
  private void ValidateCode(string VNum)
  {
  //生成验证code
  System.Drawing.Bitmap img;
  System.Drawing.Graphics g;
  System.IO.MemoryStream ms;
  int gheight = Convert.ToInt32(VNum.Length*11.5);
  //gheight为图片宽度,根据字符长度自动更改图片宽度
  img = new Bitmap(gheight,20);
  g = Graphics.FromImage(img);
  //在矩形内绘制字串(字串,字体,画笔颜色,左上x.左上y)
  g.DrawString(VNum,new Font("Arial",10),new SolidBrush(System.Drawing.Color.Blue),3,3);
  ms = new MemoryStream();
  img.Save(ms,ImageFormat.Png);
  
  
  Response.ClearContent(); //需要输出图象信息 要修改HTTP头
  Response.ContentType = "image/gif";
  Response.BinaryWrite(ms.ToArray());
  g.Dispose();
  img.Dispose();
  Response.End();
  }
  
  
  // ''函数名称:RndNum
  // ''函数参数:VCodeNum--设定返回随机字符串的位数
  // ''函数功能:产生数字和字符混合的随机字符串
  private string RndNum(int VcodeNum)
  {
  string Vchar = "0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,W,X,Y,Z" ;
  string[] VcArray = Vchar.Split(",".ToCharArray()); //将字符串生成数组
  string VNum = "";
  int i;
  for(i=1;i<VcodeNum;i++)
  {
  System.Random ro = new Random();
  double decA = ro.NextDouble();
  VNum = VNum + VcArray[Convert.ToInt32(35*decA)];
  }
  // For i=1 to VcodeNum
  // Randomize
  // VNum=VNum & VcArray(Int(35*Rnd)) ''数组一般从0开始读取,所以这里为35*Rnd
  // Next
  return VNum;
  
  
  }
  
  
  ValidateCode.aspx修改内容
  private void Page_Load(object sender, System.EventArgs e)
  {
  // 在此处放置用户代码以初始化页面
  string VNum;
  if(Session["VNum"]!= null)
  {
  VNum = Session["VNum"].ToString();
  Session.Abandon();
  ViewState["VNum"]=VNum;
  
  
  }
  
  
  
  }
  
  
  private void Button1_Click(object sender, System.EventArgs e)
  {
  if(txtValidateCode.Text == ViewState["VNum"].ToString() )
  {
  
  
  lblShow.Text="提示:验证通过" ;
  }
  else
  {
  lblShow.Text="所填写的验证码与所给的不符";
  }
  }
  
  
    做人要厚道,请注明转自chinazhan中国站长(www.ChinaZhan.com)。

 
[] [返回上一页] [打 印] [收 藏]
∷相关文章评论∷    (评论内容只代表网友观点,与本站立场无关!) [更多评论...]
中国站长下载
中国站长下载

本页只接受PR>=4 IT类站点连接,申请连接,谢谢您们的支持!希望我们的下载站能够真正帮到中国的站长们!
关于本站 - 网站帮助 - 广告合作 - 下载声明 - 友情连接 - 网站地图
Copyright © 2005-2006 ChinaZhan.Net. All Rights Reserved .