一段Asp实现验证码的超强代码

来源:互联网 发布:阿里云 音视频通话 编辑:程序博客网 时间:2024/04/30 00:05

有人用php,有人用asp,不同的人有不同的爱好和技术特点,在网上看到许多关于php验证码方面的代码,总是觉得不够,现在意识到了,不仅要知道php,asp也要知道,要想当个全才,您就要一通百通,其实所有语言都是相似的,会一个其他的也就不难了。下面是用asp实现的验证码,拿出来与大家分享。

 

 

这是HTML的部分代码,不是整个代码

此代码,主要工作是,左边是个文本框,右边是个图片,

对输入的数字进行验证

<td colspan="3"bgcolor="#b5dae3">

                        <asp:TextBoxID="txtCode" runat="server" Height="13px"Width="61px"AutoCompleteType="Disabled"></asp:TextBox></td>

                    <tdcolspan="2" bgcolor="#b5dae3" align="left">

                        <imgheight="20" src="ICode.aspx" width="40"alt="" /></td>

以下是页面对应的后台代码:

using System;

using System.Data;

using System.Configuration;

using System.Collections;

using System.Web;

using System.Web.Security;

using System.Web.UI;

using System.Web.UI.WebControls;

using System.Web.UI.WebControls.WebParts;

using System.Web.UI.HtmlControls;

 

public partial class ArtDesign_LogTest :System.Web.UI.Page

{

   protected void Page_Load(object sender, EventArgs e)

    {

       

 

    }

   protected void ImgLogin_Click(object sender, ImageClickEventArgs e)

    {

       //进行验证码的操作

       if (Session["ICode"] == null)

       {

 

           Response.Redirect("Login.aspx");

       }

       if (this.txtCode.Text != Session["ICode"].ToString())

       {

           //不能转向另外一页

           WebClass.Define.MessageBox(this.Page, "验证码错误!");

           this.txtCode.Text = "";

           this.txtPwd.Text = "";

           return;

       }

    //。。。。。。。

           }

   protected void ImageRegister_Click(object sender, ImageClickEventArgs e)

    {

       Response.Redirect("Register/Reg_Enterprise.aspx");

    }

}

 

我们从上面给出了HTML代码中,我们可以看出,图片的SRC属性是ICode.aspx网页,也就是说ICode.aspx网页会返回它的路径,以下是ICode.aspx的后台代码,此页面,主要进行一些处理,因此在此页面没有加任何的控件。

using System;

using System.Data;

using System.Configuration;

using System.Collections;

using System.Web;

using System.Web.Security;

using System.Web.UI;

using System.Web.UI.WebControls;

using System.Web.UI.WebControls.WebParts;

using System.Web.UI.HtmlControls;

using System.Drawing.Text;

using System.Drawing;

 

public partial class Compact_ICode :System.Web.UI.Page

{

   protected void Page_Load(object sender, EventArgs e)

    {

       Random random = new Random();

       string Code = random.Next(0, 9).ToString() + random.Next(0,9).ToString() + random.Next(0, 9).ToString() + random.Next(0, 9).ToString();

       string RanInt = Code;

       Session["ICode"] = RanInt;

       Response.ContentType = "image/gif";

       this.getImage(RanInt).Save(Response.OutputStream,System.Drawing.Imaging.ImageFormat.Gif);

       Response.End();

    }

   private System.Drawing.Bitmap getImage(string s)

    {

       Bitmap b = new Bitmap(1, 1);

       int width, height;

       Font aFont = new Font("Times new Roman", 24,System.Drawing.GraphicsUnit.Point);

       Graphics gr = Graphics.FromImage(b);

       width = (int)gr.MeasureString(s, aFont).Width;

       height = (int)gr.MeasureString(s, aFont).Height;

       b = new Bitmap(b, new Size(width, height));

       gr=Graphics.FromImage(b);

       Random nrandom = new Random();

       gr.Clear(Color.Blue);

       //int i;

       //for (i = 0; i < 4; i++)

       //{

       //    gr.DrawLine(newPen(Color.Yellow), new Point(nrandom.Next(0, width), nrandom.Next(0, height)),new Point(nrandom.Next(0, width), nrandom.Next(0, height)));

 

       //}

 

      

       int bcolor=nrandom.Next(0,255);

       

       gr.DrawString(s,aFont,new SolidBrush(Color.Yellow),0,0);

      

       gr.Flush();

       return b;

 

    }

}

 

以上的代码就是我用asp代码做验证码的几十行程序,如果您想要知道得更多更全,不如常来知码网看看,这里有各种各样的技术文章,一定有合适您的。以上代码公布于知码网 http://www.zhima365.com

原创粉丝点击