在Asp.net(C#)中添加程序实现验证码功能

在Asp.net(C#)中添加程序实现验证码功能,第1张

   添加一个web窗体 然后将下面的代码添加进去 并重命名该窗体为checkCode aspx    public class ValidateCode : System Web UI Page    {    private void Page_Load(object sender System EventArgs e)    {    this CreateCheckCodeImage(GenerateCheckCode())     }    #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    private string GenerateCheckCode()    {    int number    char code    string checkCode = String Empty    System Random random = new Random()     for(int i= i<i++)    {    number = random Next()     if(number % == )    code = (char)( + (char)(number % ))     else    code = (char)( A + (char)(number % ))     checkCode += code ToString()     }    Response Cookies Add(new HttpCookie( CheckCode checkCode))     return checkCode    }    private void CreateCheckCodeImage(string checkCode)    {    if(checkCode == null || checkCode Trim() == String Empty)    return    System Drawing Bitmap image = new System Drawing Bitmap((int)Math Ceiling((checkCode Length * )) )     Graphics g = Graphics FromImage(image)     try    {    //生成随机生成器    Random random = new Random()     //清空图片背景色    g Clear(Color White)     //画图片的背景噪音线    for(int i= i<i++)    {    int x = random Next(image Width)     int x = random Next(image Width)     int y = random Next(image Height)     int y = random Next(image Height)     g DrawLine(new Pen(Color Silver) x y x y )     }

    Font font = new System Drawing Font( Arial (System Drawing FontStyle Bold | System Drawing FontStyle Italic))     System Drawing Drawing D LinearGradientBrush brush = new System Drawing Drawing D LinearGradientBrush(new Rectangle( image Width image Height) Color Blue Color DarkRed f true)     g DrawString(checkCode font brush )     //画图片的前景噪音点    for(int i= i<i++)    {    int x = random Next(image Width)     int y = random Next(image Height)     image SetPixel(x y Color FromArgb(random Next()))     }    //画图片的边框线    g DrawRectangle(new Pen(Color Silver) image Width image Height )     System IO MemoryStream ms = new System IO MemoryStream()     image Save(ms System Drawing Imaging ImageFormat Gif)     Response ClearContent()     Response ContentType = image/Gif     Response BinaryWrite(ms ToArray())     }    finally    {    g Dispose()     image Dispose()     }    }    }    在你要显示验证码的窗体中添加一个image控件 并命名为imgCheckCode 用于显示验证码 再添加一个lable 并命名为lblMessage 用于显示错误信息 然后在该窗体的Page_Load中添加 this imgCheckCode ImageUrl = checkCode aspx     在登录页面的登录按钮的处理事件中使用以下代码判断验证码     private void btnLogin_Click(object sender System Web UI ImageClickEventArgs e)    {    if(Request Cookies[ checkCode ] == null)    {    lblMessage Text = 您的浏览器设置已被禁用 Cookies 您必须设置浏览器允许使用 Cookies 选项后才能使用本系统     lblMessage Visible = true    return    }    if(String Compare(Request Cookies[ checkCode ] Value txtCheckCode Text true) != )    {    lblMessage Text = 验证码错误 请输入正确的验证码     lblMessage Visible = true    return    }    }    这样就能实现你所要的验证码验证了 lishixinzhi/Article/program/net/201311/13119

<%

randomize

yzm=int(8999*rnd()+1000)

randomize

yzm_skin=int(3*rnd()+1)

%>

<%

a=int(yzm/1000)

b=int((yzm-a*1000)/100)

c=int((yzm-a*1000-b*100)/10)

d=int(yzm-a*1000-b*100-c*10)

response.write "<img align=top height=15 border=0 src=yzm/"&yzm_skin&"/"&a&".gif><img align=top height=15 border=0 src=yzm/"&yzm_skin&"/"&b&".gif><img align=top height=15 border=0 src=yzm/"&yzm_skin&"/"&c&".gif><img align=top height=15 border=0 src=yzm/"&yzm_skin&"/"&d&".gif>"

%>

if cint(form1.yzm.value)<>yzm1 then

alert("输入的验证码不正确!")

else

form1.submit

end if

大部分就是这三个结构.有点乱.呵呵

【九天学会ASP之第九天】

学习目的:整体总结,实例参考。

一、会员登录系统。

首先,有会员系统的任何程序都会用到检测是不是用户已经登陆这个步骤。这就用到了SESSION组件,下面我们看一个代码来说明。

<%

session("isadmin")="yes"

%>

这句话的意思就是在session里面定义一个islogin字符串变量,值为"yes",直接可以赋值,不需要声明。是不是很简单?

如果我们做管理员登陆系统的话,首先是一段检测是不是管理员

if 是 then

session("isadmin")=yes"

else

session("isadmin")="no"

end if

在每一个需要管理员才能看的页面最前面加上

<%

if session("isadmin")<>"yes"then

response.redirect "login.asp"

%>

这样一般用户就无法打开这个页面。解释一下response.redirect,它是转向的意思,后面的"login.asp"就是转向的文件。这样没有登陆的管理员是无法看到后面的内容的。

下面总结一下

response组件基本就是用到response.write (),response.redirect() 分别是写字符串和转向的作用

request基本就是request.form(),request.querystring() 分别是接受post,get方法传来的信息

二、添加验证码。

为网站登录会员系统或注册会员系统添加验证码可以有效防止恶意破解密码或刷贴等。

验证码编写原理跟上面讲的会员登录系统的原理差不多一样,也是用到session来。这里我们不需要去了解太多,只要懂得怎样把别人写好的组件套到自己的网站中使用即可。

1、先下载ASP验证码组件,并解压。

2、复制imgchk文件夹与info.asp到网站目录。

3、在登录页开头插入<!--#include file="info.asp"-->并在需要验证码处插入<input name='validatecode' type='text' size='5'>  <%call getcode()%>

4、在登录后检测页加入<%If Trim(Request.Form("validatecode"))=Empty or Trim(Session("cnbruce.com_ValidateCode"))<>Trim(Request.Form("validatecode")) Then

response.write "<script language=JavaScript>" &chr(13) &"alert('请输入正确的验证码')" &"history.back()" &"</script>"

Response.End

end if

%>

好了,九天到今天就结束了,我想我这个教程只是让大家入门的,大家觉得写的浅也不要责怪必尽不可能初学者和高手都照顾到吧,大家一定要好好研究,通了这个程序,你会发现你已经会ASP了。谢谢大家的支持!大家有问题可以在我的博客http://hi.baidu.com/fangchenxi2010里面留言,希望大家帮忙多多宣传本站,转贴本站文章的也请著名出处,谢谢合作。最后附上本文章中的实例文件包,供大家下载后参考用的。点击下载


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/bake/11775661.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-18
下一篇 2023-05-18

发表评论

登录后才能评论

评论列表(0条)

保存