读书人

考别人的。不知道该如何做了~回答正确

发布时间: 2012-02-02 23:57:14 作者: rapoo

考别人的。不知道该怎么做了~!回答正确马上结帐!
我在网上看找到一个做验证图片的,但是我到做出来了,但是在验证的时候确实不知道怎么获取它图片上的值~~请高手帮忙


using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Drawing.Imaging;
using System.IO;
using System.Drawing;
public partial class image : System.Web.UI.Page
{
protected void Page_Load(object sender, 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, 25);
g = Graphics.FromImage(Img);
//背景颜色
g.Clear(Color.White);
//文字字体
Font f = new Font( "Arial Black ", 10);
//文字颜色
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];
}
return VNum;
}


}


[解决办法]
图片上的值都是输入的

TextBox1.Text


Request.Cookie[ "ImageV "]比较
[解决办法]
HttpCookie a = new HttpCookie( "ImageV ", tmp);
----------
所以就直接读取这个cookies就可以了:Request.Cookies[ "a "].value
[解决办法]
值为什么要保存图片上。
图片只为显示用。
[解决办法]
直接用img在你要调出图片的 把那个生成图片的文件包含进去就行了
[解决办法]
HttpCookie a = new HttpCookie( "ImageV ", tmp);
----------

你取图片的地址跟你是同一个域名么?是不是因为cookie域名的原因?
设置 a.Domain看看?
[解决办法]
<TD height= "30 "> <strong> 验证码: </strong> </TD>
<TD height= "30 "> <INPUT type= "text " size= "14 " id= "lzm " name= "lzm " runat= "server " maxlength= "20 "> </TD>


<td> <asp:Image Runat= "server " ID= "ImageCheck " ImageUrl= "ValidateCode.aspx "> </asp:Image> </td>
[解决办法]
LZ应该在RndNum方法使用Vchar.ToCharArray(),你看你的代码多麻烦
[解决办法]
刚写的cookie,还没发到client当然没有值了。
在用户浏览是显示图片或者图片页,在提交验证时取上次用户浏览时存储在cookie中的图片验证码信息
[解决办法]
那你就session好了嘛

[解决办法]
把cookie该session

读书人网 >asp.net

热点推荐