在ASP.NET下实现数字和字符相混合的验证码(C# Code)

asp.net|验证码

为了便于大家学习,修改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="所填写的验证码与所给的不符";
}
}

时间: 2024-08-28 04:59:54

在ASP.NET下实现数字和字符相混合的验证码(C# Code)的相关文章

在ASP.NET下实现数字和字符相混合的验证码

asp.net|验证码 经常在论坛里看到有问怎么实现验证码的帖子,其实关于验证码的文章在CSDN,DEV-CLUB等网站上都有很多,但是很多文章只讲诉了如何输出一个随机生成数字或字符的图象,当然了,这个是验证码的核心了,但是对很多ASP.NET的初学者来说,怎么使用它生成的图象又成了一个问题(论坛有不少问这个的),这也是我写本文的一个原因. 言归正传,关于验证码的原理,我就不多说了,大家可以参见其他文章,文末附有完整的实例代码,里面有详细的注释,你可以跳过解说文字,直接使用 首先,我要简要说说S

在ASP.NET下实现数字和字符相混合的验证码(vb.net Code)

asp.net|验证码 经常在论坛里看到有问怎么实现验证码的帖子,其实关于验证码的文章在CSDN,DEV-CLUB等网站上都有很多,但是很多文章只讲诉了如何输出一个随机生成数字或字符的图象,当然了,这个是验证码的核心了,但是对很多ASP.NET的初学者来说,怎么使用它生成的图象又成了一个问题(论坛有不少问这个的),这也是我写本文的一个原因. 言归正传,关于验证码的原理,我就不多说了,大家可以参见其他文章,文末附有完整的实例代码,里面有详细的注释,你可以跳过解说文字,直接使用 首先,我要简要说说S

.NET下实现数字和字符相混合的验证码实例_实用技巧

经常在论坛里看到有问怎么实现验证码的帖子,其实关于验证码的文章在CSDN,DEV-CLUB等网站上都有很多,但是很多文章只讲诉了如何输出一个随机生成数字或字符的图象,当然了,这个是验证码的核心了,但是对很多ASP.NET的初学者来说,怎么使用它生成的图象又成了一个问题(论坛有不少问这个的),这也是我写本文的一个原因.    言归正传,关于验证码的原理,我就不多说了,大家可以参见其他文章,文末附有完整的实例代码,里面有详细的注释,你可以跳过解说文字,直接使用    首先,我要简要说说Session

ASP.NET实现数字和字符相混合的验证码

asp.net|验证码 经常在论坛里看到有问怎么实现验证码的帖子,其实关于验证码的文章在网站上都有很多,但是很多文章只讲诉了如何输出一个随机生成数字或字符的图象,当然了,这个是验证码的核心了,但是对很多ASP.NET的初学者来说,怎么使用它生成的图象又成了一个问题(论坛有不少问这个的),这也是我写本文的一个原因. 言归正传,关于验证码的原理,我就不多说了,大家可以参见其他文章,文末附有完整的实例代码,里面有详细的注释,你可以跳过解说文字,直接使用. 首先,我要简要说说Session和ViewSt

asp.net下计算数字1至10的总和_实用技巧

复制代码 代码如下: protected void Page_Load(object sender, EventArgs e) { Response.Write(string.Format("数字1~10总和等于{0}.", Sum(1, 10).ToString())); } private int Sum(int min, int max) { int s = 0; for (int i = min; i <= max; i++) { s += i; } return s;

asp.net下实现静态页面(html)

asp.net|静态|页面 当我们的网站访问量很大的时候,客户端的每一次POST都去大量调用数据库服务器是一件多么可怕的事.系统性能会大打折扣,轻则速度很慢.数据库锁死,重则系统崩溃.本文将通过实现静态HTML页面解决这个问题. 1.建立Conn.cs类文件 using System; //记得添加以下三引用 using System.Text; using System.Web; using System.IO; namespace myservers {  /// <summary>  /

ASP.net下的前台日历控件源代码

asp.net|控件|日历|源代码 #region 声明//----------------------------------------------------------------------//// 作者: 李淼(Nick.Lee)//// ASP.net下的前台日历控件源代码(不刷新页面) // 时间:2005-3-15 // boyorgril@msn.com// QQ:16503096//注意:引用请标明出处,谢谢//-------------------------------

ASP.net下的前台日历控件源代码(不刷新页面)

asp.net|控件|日历|刷新|页面|源代码 #region 声明//----------------------------------------------------------------------//// 作者: 李淼(Nick.Lee)//// ASP.net下的前台日历控件源代码(不刷新页面) // 时间:2005-3-15 // boyorgril@msn.com// QQ:16503096//注意:引用请标明出处,谢谢//-------------------------

android-Edittext 验证只允许输入数字和字符?

问题描述 Edittext 验证只允许输入数字和字符? 在程序中 edittext 验证,应该只允许输入字符.数字.下划线和连字符. edittext.addTextChangedListener(new TextWatcher() { @Override public void onTextChanged(CharSequence s, int start, int before, int count) { // TODO Auto-generated method stub } @Overr