登陆时验证码的制作(asp.net)

登陆时验证码的制作(asp.net)

 

1、显示样式:

2.新建一个页,Default2.aspx

3.在Page_load事件拷入如下代码

stringtmp = RndNum(4);

HttpCookiea =newHttpCookie("ImageV ", tmp);

        Response.Cookies.Add(a);

this.ValidateCode(tmp);

4、在该页添加两个方法:

privatevoidValidateCode(stringVNum)

    {

BitmapImg =null;

Graphicsg =null;

MemoryStreamms =null;

 

intgheight = VNum.Length * 12;

        Img =newBitmap(gheight, 25);

        g =Graphics.FromImage(Img);

//生¦¨²成¨¦随?机¨²生¦¨²成¨¦器¡Â 

Randomrandom =newRandom();

//背À3景¡ã颜?色¦?

        g.Clear(Color.Orange);

//for (int i = 0; i < 25; i++)

//{

//    int x1 = random.Next(Img.Width);

//    int x2 = random.Next(Img.Width);

//  int y1 = random.Next(Img.Height);

//    int y2 = random.Next(Img.Height);

 

//    g.DrawLine(new Pen(Color.Silver), x1, y1, x2, y2);

//}

 

//画-图ª?片?的Ì?前¡ã景¡ã噪?音°?点Ì? 

for(inti = 0; i < 100; i++)

        {

intx = random.Next(Img.Width);

inty = random.Next(Img.Height);

 

            Img.SetPixel(x, y,Color.FromArgb(random.Next()));

        }

 

//文?字Á?字Á?体¬?

Fontf =newFont("Arial   Black ", 12);

// 文?字Á?颜?色¦?

SolidBrushs =newSolidBrush(Color.White);

        g.DrawString(VNum, f, s, 3, 3);

        ms =newMemoryStream();

        Img.Save(ms, ImageFormat.Jpeg);

        Response.ClearContent();

        Response.ContentType ="image/Jpeg ";

        Response.BinaryWrite(ms.ToArray());

 

        g.Dispose();

        Img.Dispose();

        Response.End();

    }

 

privatestringRndNum(intVcodeNum)

    {

stringVchar ="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[] VcArray = Vchar.Split(newChar[] {','});

stringVNum =" ";

inttemp = -1;

 

Randomrand =newRandom();

 

for(inti = 1; i < VcodeNum + 1; i++)

        {

if(temp != -1)

            {

                rand =newRandom(i * temp *unchecked((int)DateTime.Now.Ticks));

            }

 

intt = rand.Next(35);

if(temp != -1 && temp == t)

            {

returnRndNum(VcodeNum);

            }

            temp = t;

            VNum += VcArray[t];

        }

returnVNum;

    }

 

5、在建立一个页面用来显示验证码:

则在该页面添加一个图片控件

6、在该页的Page_load事件中添加

ImageButton1.ImageUrl ="Default2.aspx";

7.前台页面添加:

<asp:ImageButtonID="ImageButton1"runat="server"Width="100"Height="30"/>

     看不清?<ahref="javascript:changeCode()"style="text-decoration: underline;">换一张</a>

<scripttype="text/javascript">

functionchangeCode() {

              document.getElementById('ImageButton1').src = document.getElementById('ImageButton1').src +'?';

          }

 

</script>

 

这样就完成啦!

posted @ 2015-09-19 14:07  armyfai  阅读(1431)  评论(0编辑  收藏  举报