【发布时间】:2016-02-05 07:25:40
【问题描述】:
我想先写验证码我写了asp然后我可以把它当作图像。问题是图像和会话不相等会话在图像之前给出一个。我找不到问题的原因。我该如何解决这个问题?
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;
}
}
【问题讨论】:
-
听起来像
PostBack问题.. 我还建议存储初始化的 Session["gResim"];Global.asax file and then assigning it properly as well as getting rid of the Session.Clear() method probably not necessary what happens when you step through the code.. also translate your comments intoEnglish`中的值`