如何在asp.net网页中编写验证码

zhu4139365 2007-12-02 10:18:50
如何在asp.net网页中编写验证码呢 ?
怎么随机生成四位的数字(0000-9999)?
怎么验证输入的验证码是否正确?
...全文
231 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
flyingfz 2007-12-03
  • 打赏
  • 举报
回复
楼上的代码基本正确。

不过,生成的 验证码要放到 Session里。 否则下次验证的时候,还是读取cookie里的验证码,和服务器端生成的验证码不一样。
cg2007 2007-12-03
  • 打赏
  • 举报
回复
参考

http://www.cnblogs.com/gwazy/archive/2005/04/18/139510.html
ghosteryly 2007-12-03
  • 打赏
  • 举报
回复
mark
xierfly 2007-12-02
  • 打赏
  • 举报
回复
你说的那个,只用数字,可以用random方法。

给你个实际的稍微复杂点的示例:
using System.Drawing.Imaging;
using System.IO;

========

private void Page_Load(object sender, System.EventArgs e)
{
// 在此处放置用户代码以初始化页面
string tmp=RndNum(4);
HttpCookie a =new HttpCookie("ImageV",tmp);
Response.Cookies.Add(a);
this.ValidateCode(tmp);
}
private void ValidateCode(string VNum)
{
Bitmap Img= null;
Graphics g=null;
MemoryStream ms=null;

int gheight=VNum.Length*12;
Img =new Bitmap(gheight,20);
g=Graphics.FromImage(Img);
//背景颜色
g.Clear(Color.White);
//文字字体
Font f=new Font("宋体", 12);

//文字颜色
SolidBrush s=new SolidBrush(Color.Black);
g.DrawString(VNum,f,s,3,3);
ms=new MemoryStream();
Img.Save(ms,ImageFormat.Jpeg );
Response.ClearContent();
Response.ContentType="image/Jpeg";
Response.BinaryWrite(ms.ToArray());


g.Dispose();
Img.Dispose();
Response.End();

}

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,v,w,x,y,z";

string[] VcArray=Vchar.Split(new char[] {','});
string VNum="";
int temp=-1;

Random rand=new Random();

for(int i=1;i<VcodeNum +1; i++)
{
if(temp!=-1)
{
rand=new Random(i*temp*unchecked((int)DateTime.Now.Ticks));

}
int t= rand.Next(35);
if(temp!=-1&&temp==t)
{
return RndNum(VcodeNum);

}
temp=t;
VNum+=VcArray[t];
}
Session["num"]=VNum;
return VNum;

}
suyiming 2007-12-02
  • 打赏
  • 举报
回复
生成很多办法 自己找
验证有cookie session验证
session
(Page.IsValid && Session["GetCode"].ToString().Equals(tb_testcode.Text))
cookie都差不多的
Alvin709 2007-12-02
  • 打赏
  • 举报
回复
简单点的就是
用四个随机涵数生成四个数字..
再用GDI画成图片就OK了!!

62,074

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧