如何使用asp.net制作图像验证码问题

时间:2011-08-09 03:14:44

标签: asp.net image security captcha

使用ASP.net Netframework 4.0制作图像验证码安全问题的最佳,最有效和最简单的方法是什么

2 个答案:

答案 0 :(得分:1)

如果你不这样做,不要重新发明轮子。

使用recaptcha。

以下是如何在.Net中执行此操作:

http://code.google.com/apis/recaptcha/docs/aspnet.html

答案 1 :(得分:0)

我想你问的是如何让我自己的asp.net不使用外部。这是我用的,非常有效

  using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Drawing;

public partial class AntiSecuirtyImageDrawPage : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
        this.returnNumer(); 
    }

    private void returnNumer()
    {

        Random num1 = new Random();

        Random num2 = new Random();

        int numQ1 = 0;

        int numQ2 = 0;

        string QString = null;

        numQ1 = num1.Next(1, 90);

        numQ2 = num1.Next(1, 9);

        QString = numQ1.ToString() + " + " + numQ2.ToString() + " = ";

        Session["ABQAnswer"] = numQ1 + numQ2;

        Bitmap bitmap = new Bitmap(num1.Next(70, 125), 22);

        Graphics Grfx = Graphics.FromImage(bitmap);

        Font font = new Font("Arial", 17, FontStyle.Bold, GraphicsUnit.Pixel);

        Rectangle Rect = new Rectangle(0, 0, 125, 50);

        Grfx.FillRectangle(Brushes.DarkBlue, Rect);

        Grfx.DrawRectangle(Pens.PeachPuff, Rect);

        // Border

        Grfx.DrawString(QString, font, Brushes.White, 0, 0);

        Response.ContentType = "Image/jpeg";

        bitmap.Save(Response.OutputStream, System.Drawing.Imaging.ImageFormat.Jpeg);

        bitmap.Dispose();

        Grfx.Dispose();

    } 
}

我怎么称呼它

  <div id="ABQImg" style="position: absolute; left: 420px; top: 235px; width: 125px;
            z-index: 44; height: 22px; line-height: 22px; text-align: right;">
            <asp:Image ID="imgABQ" BorderWidth="0px" runat="server" ImageUrl="~/AntiSecuirtyImageDrawPage.aspx" />
        </div>