• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

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

原作者: [db:作者] 来自: [db:来源] 收藏 邀请
为了便于大家学习,修改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="所填写的验证码与所给的不符";
}
}

鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap