验证码和会话不相等

Captcha and session are not equal

我正在尝试先写验证码我写了 asp 然后我可以把它当作图像。问题是图像和会话不相等会话在 image.i 之前给出一个找不到原因problem.how 我可以解决这个问题吗?

    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;
    }
}

我会 "fix it" 采取以下步骤:

将图像创建移至自定义处理程序。创建图像时,将唯一值存储在会话或其他位置。

添加图像标签,将源设置为处理程序。

为用户输入响应添加输入控件

向服务器提交响应

服务器将响应与唯一值进行比较。

处理响应。