博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
登陆时验证码的制作(asp.net)
阅读量:6216 次
发布时间:2019-06-21

本文共 2170 字,大约阅读时间需要 7 分钟。

登陆时验证码的制作(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>

 

这样就完成啦!

转载于:https://www.cnblogs.com/armyfai/p/4821423.html

你可能感兴趣的文章
Idea改项目名
查看>>
Io流的概述
查看>>
【6】使用nginx
查看>>
WPF: 在MVVM中使用Navigtaion
查看>>
setNeedsDisplay setNeedDisplayInRect
查看>>
@ConfigurationProperties和@EnableConfigurationProperties配合使用
查看>>
关于mysql的loose index scan的几点疑问
查看>>
滚动时div的背景图片随之滚动
查看>>
android 自定义progressbar 样式
查看>>
缓存限定登录次数
查看>>
bzoj 1051: [HAOI2006]受欢迎的牛
查看>>
(转载) STL Vector容器
查看>>
vue-awesome-swipe 基于vue使用的轮播组件 使用(改)
查看>>
OGG_GoldenGate数据库配置DDL同步(案例)
查看>>
解决升级Xcode后插件不能使用的问题
查看>>
2017-9-18视图,触发器,事物,存储过程,函数
查看>>
[HNOI2017]影魔
查看>>
【Python】编程时的捕获异常
查看>>
jsp页面div列表
查看>>
jsp页面table列表
查看>>