验证码

Validate.cs:

---------------------------------------------------------------------------------------------------------------------

using System;

using System.Collections;

using System.ComponentModel;

using System.Data;

using System.Drawing;

using System.Web;

using System.Web.SessionState;

using System.Web.UI;

using System.Web.UI.WebControls;

using System.Web.UI.HtmlControls;

using System.IO;

using System.Drawing.Imaging;

 

namespace message

{

         /// validate 的摘要说明。

     public class validate : System.Web.UI.Page

     {

         private void Page_Load(object sender, System.EventArgs e)

         {

              // 在此处放置用户代码以初始化页面

              string strNum=Rndnum();

              Session["Num0"]=strNum;

              ValidateCode(Session["Num0"].ToString());

             

         }

 

         #region Web 窗体设计器生成的代码

         override protected void OnInit(EventArgs e)

         {

              //

              // CODEGEN: 该调用是 ASP.NET Web 窗体设计器所必需的。

              //

              InitializeComponent();

              base.OnInit(e);

         }

        

         /// <summary>

         /// 设计器支持所需的方法 - 不要使用代码编辑器修改

         /// 此方法的内容。

         /// </summary>

         private void InitializeComponent()

         {   

              this.Load += new System.EventHandler(this.Page_Load);

 

         }

         #endregion

         public string Rndnum()

         {

              int j1;

              string strChoice="0,1,2,3,4,5,6,7,8,9,a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z";

              string [] strResult = strChoice.Split(new Char [] {','});

              string strReturn="";

              Random rnd = new Random(unchecked((int)DateTime.Now.Ticks));

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

              {

                   Random rnd1=new Random(rnd.Next()*unchecked ((int)DateTime.Now.Ticks));

                   j1=rnd1.Next(35);

                   rnd=new Random (rnd.Next()*unchecked((int)DateTime.Now.Ticks));

                   strReturn=strReturn + strResult[j1].ToString();

              }

                   return strReturn;

     

         }

 

         public void ValidateCode(string vnum)

         {

              MemoryStream ms=new MemoryStream();

              double Height=(vnum.Length)*12;

              int gHeight=Convert.ToInt32(Height);

              Bitmap img=new Bitmap(gHeight,20);

              Graphics g=Graphics.FromImage(img);

              g.DrawString(vnum,(new Font ("幼圆",12)),(new SolidBrush(Color.Red)),1,4);

              img.Save(ms,ImageFormat.Png);

              Response.ClearContent();

              Response.ContentType="image/Bmp";

              Response.BinaryWrite(ms.ToArray());

              g.Dispose();

              img.Dispose();

              Response.End();

 

         }

 

        

     }

}

 

 

调用方法:用image图象联接上就可以了ImageUrl="validate.aspx"

 

验证验证码是否相同:

     private void txtvalidate_TextChanged(object sender, System.EventArgs e)

         {

              if(this.txtvalidate.Text==(string)Session["Num0"])

              {

             

              }

              else

              {

        

                   Response.Write("<script Language = 'javascript'>alert('验证码错误!');;window.location.replace('login_userinfo_add.aspx');</script>");

              }

         }

 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值