0
我想写验证码首先我写了asp然后我可以把它作为图像。问题是图像和会话不相等会话给出之前image.i找不到问题的原因。我该如何解决这个问题?验证码和会话不相等
using System;
using System.Drawing;
using System.Drawing.Drawing2D;
using System.Drawing.Imaging;
public partial class botdetect_captcha : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
//create image
Bitmap bmp = new Bitmap(100, 30);
//create object to draw
Graphics g = Graphics.FromImage(bmp);
//image background
g.Clear(Color.LightBlue);
//randomly string
string metin = RastgeleKelime();
//send to session for validation
Session["gResim"] = metin;
//create font for image
Font font = new Font("Comic Sans MS", 14);
g.DrawString(metin, font, Brushes.DarkBlue, 4, 1);
//draw randomly three lines
Random rnd = new Random();
g.DrawLine(Pens.DarkSlateGray, rnd.Next(0, 100), rnd.Next(0, 30), rnd.Next(0, 100), rnd.Next(0, 30));
g.DrawLine(Pens.DarkRed, rnd.Next(0, 100), rnd.Next(0, 30), rnd.Next(0, 100), rnd.Next(0, 30));
g.DrawLine(Pens.DarkOrange, rnd.Next(0, 100), rnd.Next(0, 30), rnd.Next(0, 100), rnd.Next(0, 30));
//make response
bmp.Save(Response.OutputStream, ImageFormat.Jpeg);
}
public string RastgeleKelime()
{
string kelime = "";
Random rnd = new Random();
for (int i = 0; i < 6; i++)
{
kelime += ((char)rnd.Next('A', 'Z')).ToString();
}
return kelime;
}
}
听起来像一个'回发'问题..我也会建议存储初始化会话[“gResim”];在Global.asax文件中的值,然后正确地分配它,以及摆脱Session.Clear()方法可能不是必要的,当你逐步完成代码时会发生什么......也可以将你的注释转换成'English' – MethodMan