首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > asp.net >

验证码的判断有关问题··

2012-02-03 
验证码的判断问题我现在 做了一个验证码 我现在 想做个button 来 验证img srcDefimage.aspx idyzm

验证码的判断问题··
我现在 做了一个验证码·· 我现在 想做个button 来 验证  


  <img src="Defimage.aspx" id="yzm" onclick="this.src='Defimage.aspx?abc='+Math.random()" alt="图片看不清?点击重新得到验证码" style="cursor:hand; " /> 里面随即显示的字母和数字
  <input id="Text1" type="text" runat="server" />

文本框里面输入的字母等于 <img src="Defimage.aspx" id="yzm" onclick="this.src='Defimage.aspx?abc='+Math.random()" alt="图片看不清?点击重新得到验证码" style="cursor:hand; " /> 的话··就可以label 会显示成功·· 如果不相等的话 label 就显示不成功 



[解决办法]
好像是把字母和数字写到图片上的!!
[解决办法]
用点击Button后调用Ajax
[解决办法]

验证码 产生一个session[""];;

可以通过session[""]==用户输入的值..就通过验证??
[解决办法]
UP,不清楚你要问什么,
[解决办法]
 
Random rd = new Random(); //创建随机数对象

//以下4行,产生由6个字母和数字组成的一个字符串 
string str = "ABCDEFGHIJKLMNOPQRSTURWXYZ0123456789"; 
string my51aspx = ""; 
for (int i = 0; i < 4; i++) 

my51aspx = my51aspx + str.Substring(rd.Next(35), 1); 

//验证码值存放到Session中用来比较 
Session["ValidateReg"] = my51aspx; 

//以下三句,通过随机找一个现有图象产生一个画布Bitmap 
string bgFilePath = Server.MapPath("images/0" + new Random().Next(5) + ".jpg");//随机找个图象 
System.Drawing.Image imgObj = System.Drawing.Image.FromFile(bgFilePath); 
Bitmap newBitmap = new Bitmap(imgObj, 80, 18);//建立位图对象 

Graphics g = Graphics.FromImage(newBitmap);//根据上面创建的位图对象创建绘图面 
SolidBrush brush = new SolidBrush(Color.Black);//设置画笔颜色 

//定义一个含10种字体的数组 
String[] fontFamily ={ "Arial", "Verdana", "Comic Sans MS", "Impact", "Haettenschweiler", "Lucida Sans Unicode", "Garamond", "Courier New", "Book Antiqua", "Arial Narrow" }; 

//通过循环,绘制每个字符, 
for (int a = 0; a < my51aspx.Length; a++) 

Font textFont = new Font(fontFamily[rd.Next(9)], 10, FontStyle.Bold);//字体随机,字号大小30,加粗 
//每次循环绘制一个字符,设置字体格式,画笔颜色,字符相对画布的X坐标,字符相对画布的Y坐标 
g.DrawString(my51aspx.Substring(a, 1), textFont, brush, a * 19, 0); 


//保存画的图片到输出流中 
newBitmap.Save(Response.OutputStream, ImageFormat.Gif);
[解决办法]
 
Random rd = new Random(); //创建随机数对象

//以下4行,产生由6个字母和数字组成的一个字符串 
string str = "ABCDEFGHIJKLMNOPQRSTURWXYZ0123456789"; 
string my51aspx = ""; 
for (int i = 0; i < 4; i++) 

my51aspx = my51aspx + str.Substring(rd.Next(35), 1); 

//验证码值存放到Session中用来比较 
Session["ValidateReg"] = my51aspx; 

//以下三句,通过随机找一个现有图象产生一个画布Bitmap 
string bgFilePath = Server.MapPath("images/0" + new Random().Next(5) + ".jpg");//随机找个图象 
System.Drawing.Image imgObj = System.Drawing.Image.FromFile(bgFilePath); 


Bitmap newBitmap = new Bitmap(imgObj, 80, 18);//建立位图对象 

Graphics g = Graphics.FromImage(newBitmap);//根据上面创建的位图对象创建绘图面 
SolidBrush brush = new SolidBrush(Color.Black);//设置画笔颜色 

//定义一个含10种字体的数组 
String[] fontFamily ={ "Arial", "Verdana", "Comic Sans MS", "Impact", "Haettenschweiler", "Lucida Sans Unicode", "Garamond", "Courier New", "Book Antiqua", "Arial Narrow" }; 

//通过循环,绘制每个字符, 
for (int a = 0; a < my51aspx.Length; a++) 

Font textFont = new Font(fontFamily[rd.Next(9)], 10, FontStyle.Bold);//字体随机,字号大小30,加粗 
//每次循环绘制一个字符,设置字体格式,画笔颜色,字符相对画布的X坐标,字符相对画布的Y坐标 
g.DrawString(my51aspx.Substring(a, 1), textFont, brush, a * 19, 0); 


//保存画的图片到输出流中 
newBitmap.Save(Response.OutputStream, ImageFormat.Gif);
[解决办法]
你可以用AJAX到其他地方去验证,然后返回一个bool值,然后再刷新Image页面,从新获取验证码
[解决办法]
把你产生的验证码用Session["ValidationCode"]保留
Page_Load中加:
button.Attributes.Add("onclick", "javascript:checkValidation("+Session["ValidationCode"].ToString()+")");
JS:
function checkValidation(ValidationCode)
{

if(document.getElementById("Text1").value==ValidationCode)
alert("成功!")
}
[解决办法]

引用楼主 love531000 的帖子:
我现在 做了一个验证码·· 我现在 想做个button 来 验证


<img src="Defimage.aspx" id="yzm" onclick="this.src='Defimage.aspx?abc='+Math.random()" alt="图片看不清?点击重新得到验证码" style="cursor:hand; " /> 里面随即显示的字母和数字
<input id="Text1" type="text" runat="server" />

文本框里面输入的字母等于 <img src="Defimage.aspx" id="yzm" onclick="this.src='Defimage.aspx?ab…

[解决办法]
用cookies和js就好啦,不需要ajax的
具体方法,在生成验证图片是,吧字符串放入到cookies里,然后,在input里面加个失去焦点的事件,当失去焦点时就去验证input的值和cookies的是否一样,不一样就显示错误
[解决办法]
给个邮箱 我给你传个 qq 也行

[解决办法]
1、用一个单独的网页来呈现 验证码图片,显示直接 引用该网页。比如: <img id="imgVerify" src="VerifyCode.aspx?" alt="看不清?点击更换" onclick="this.src=this.src+'?'" /> 
2、识别 利用Session、Cookie最简单。 (注意:验证不是验证图片,而是图片中的数字、字符串,这样就变得简单了)
1)比如:在验证码生成的.cs中,先将 验证码字符串 存入cookie , 
string str = this.CreateValidateNumber(4); // 取出字符串,赋值
Session["Vnumber"] = str; 
this.CreateValidateGraphic(this, str); //生成图片
Response.Cookies.Add(new HttpCookie("CheckCode", str)); // 添加到Cookie中
2)在登录页面的.cs中,再利用一个自带的方法判断: 
if (String.Compare(Request.Cookies["CheckCode"].Value, 输入框.Text.ToString().Trim(), true) != 0) 

Response.Write("对不起,验证码错误!"); 
return; 
}
[解决办法]
探讨
把你产生的验证码用Session["ValidationCode"]保留
Page_Load中加:
button.Attributes.Add("onclick", "javascript:checkValidation("+Session["ValidationCode"].ToString()+")");
JS:


function checkValidation(ValidationCode)
{

if(document.getElementById("Text1").value==ValidationCode)
alert("成功!")
}


[解决办法]
session 容易丢失,所以要先判断下String.IsNullOrEmpty(session["验证码"])

验证码最好还是不要在客户端验证,暴露在客户端非常不安全!别人可以轻松的获取到你的验证码!
[解决办法]
探讨
session 容易丢失,所以要先判断下String.IsNullOrEmpty(session["验证码"])

验证码最好还是不要在客户端验证,暴露在客户端非常不安全!别人可以轻松的获取到你的验证码!

[解决办法]

热点排行