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