
请问:在ASP.NET中如何判断验证码输入是否正确?
例如:用户登录时,输入用户名和密码后,再输入验证码,如果用户把验证码输错了,显然他是不能登录的,那么,如何用代码或其他方法判断用户输入的验证码与随机生成的验证码是一致的呢...
例如:用户登录时,输入用户名和密码后,再输入验证码,如果用户把验证码输错了,显然他是不能登录的,那么,如何用代码或其他方法判断用户输入的验证码与随机生成的验证码是一致的呢???
展开
2个回答
展开全部
我给你一个vc2003实例:如下如果需要vs2005请到http://class.socut.com/default.aspx?Socut=Class-View&C_ID=1&C_NodeID=156&L_ID=7274b2ec-320d-43bc-a78b-72cf16a377bc
vs2003如下:
建立HcSir_GetCode.aspx 代码
using System;
using System.Collections;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Web;
using System.Web.SessionState;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.HtmlControls;
using System.Drawing.Imaging;
namespace HuangXi
{
/// <summary>
/// HcSir_GetCode 的摘要说明。
/// </summary>
public class HcSir_GetCode : System.Web.UI.Page
{
private void Page_Load(object sender, System.EventArgs e)
{
// 在此处放置用户代码以初始化页面
Bitmap a = new Bitmap(40, 15, System.Drawing.Imaging.PixelFormat.Format64bppPArgb);//数字为宽和高
Graphics b;
Font c =new Font("Lucida Sans Unicode", 11);//数字为字体大小
Brush d = new SolidBrush(System.Drawing.Color.Red);
Random t= new Random ();
Pen LP = new Pen (Color.YellowGreen ,2);
string k;
k= ((int)t.Next (9999)).ToString() ;
k = k.PadLeft(4,'0');
Session.Add ("YZ_CKM",k.GetHashCode ());//用于记录验证码,如果期望安全,也可拿去加密。到时比较错误与否,就以这个session(或其加密了的数据)为标准了。
b= Graphics.FromImage(a);
b.Clear(Color.White);
for(int i=0;i<100;i+=7)
{
b.DrawLine(LP,i,0,0,i);
}
b.DrawString(k , c, d, -1, -3);//最后两个数是X,Y参数
b.Dispose();
a.Save(Response.OutputStream, ImageFormat.Gif);
}
#region Web 窗体设计器生成的代码
override protected void OnInit(EventArgs e)
{
//
// CODEGEN: 该调用是 ASP.NET Web 窗体设计器所必需的。
//
InitializeComponent();
base.OnInit(e);
}
/// <summary>
/// 设计器支持所需的方法 - 不要使用代码编辑器修改
/// 此方法的内容。
/// </summary>
private void InitializeComponent()
{
this.Load += new System.EventHandler(this.Page_Load);
}
#endregion
}
}
下面就是我们实际调用HcSir_GetCode.aspx
if(H_CMK.Text.GetHashCode().ToString () == Session["YZ_CKM"].ToString ())
{
Label1.Text=" 验证码正确!";
}
else
{
Label1.Text=" 验证码输入有误!";
H_CMK.Text="";
}
//说明下 H_CMK是用户输入验证码的表格ID YZ_CMK是HcSir_GetCode.aspx里面对应的验证码值。可以根据你自己的需要自行修改!
//ToString () 是大小写去掉ToString ()就严格控制大小写。
vs2003如下:
建立HcSir_GetCode.aspx 代码
using System;
using System.Collections;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Web;
using System.Web.SessionState;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.HtmlControls;
using System.Drawing.Imaging;
namespace HuangXi
{
/// <summary>
/// HcSir_GetCode 的摘要说明。
/// </summary>
public class HcSir_GetCode : System.Web.UI.Page
{
private void Page_Load(object sender, System.EventArgs e)
{
// 在此处放置用户代码以初始化页面
Bitmap a = new Bitmap(40, 15, System.Drawing.Imaging.PixelFormat.Format64bppPArgb);//数字为宽和高
Graphics b;
Font c =new Font("Lucida Sans Unicode", 11);//数字为字体大小
Brush d = new SolidBrush(System.Drawing.Color.Red);
Random t= new Random ();
Pen LP = new Pen (Color.YellowGreen ,2);
string k;
k= ((int)t.Next (9999)).ToString() ;
k = k.PadLeft(4,'0');
Session.Add ("YZ_CKM",k.GetHashCode ());//用于记录验证码,如果期望安全,也可拿去加密。到时比较错误与否,就以这个session(或其加密了的数据)为标准了。
b= Graphics.FromImage(a);
b.Clear(Color.White);
for(int i=0;i<100;i+=7)
{
b.DrawLine(LP,i,0,0,i);
}
b.DrawString(k , c, d, -1, -3);//最后两个数是X,Y参数
b.Dispose();
a.Save(Response.OutputStream, ImageFormat.Gif);
}
#region Web 窗体设计器生成的代码
override protected void OnInit(EventArgs e)
{
//
// CODEGEN: 该调用是 ASP.NET Web 窗体设计器所必需的。
//
InitializeComponent();
base.OnInit(e);
}
/// <summary>
/// 设计器支持所需的方法 - 不要使用代码编辑器修改
/// 此方法的内容。
/// </summary>
private void InitializeComponent()
{
this.Load += new System.EventHandler(this.Page_Load);
}
#endregion
}
}
下面就是我们实际调用HcSir_GetCode.aspx
if(H_CMK.Text.GetHashCode().ToString () == Session["YZ_CKM"].ToString ())
{
Label1.Text=" 验证码正确!";
}
else
{
Label1.Text=" 验证码输入有误!";
H_CMK.Text="";
}
//说明下 H_CMK是用户输入验证码的表格ID YZ_CMK是HcSir_GetCode.aspx里面对应的验证码值。可以根据你自己的需要自行修改!
//ToString () 是大小写去掉ToString ()就严格控制大小写。
参考资料: http://class.socut.com/

2025-09-24 广告
URule Pro Java 规则引擎,一款给业务人员使用的可视化商业决策规则引擎系统,打开浏览器即可开始设计业务规则;URule Pro是一款自主研发纯Java规则引擎,亦是一款国产智能风控决策引擎,可以运行在Windows、Linux、...
点击进入详情页
本回答由锐道提供
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询