- windows XP |
- windows vista |
- windows 2000 |
- windows 2003 |
- windows 2008 |
- linux |
- unix |
- mac
- access |
- mysql |
- sql server |
- oracle |
- DB2
- word |
- excel |
- powerpoint |
- wps |
验证码图片服务页面完成后,我们就可以利用这个页面来实现验证码技术。我们建立一个模拟系统登录的页面。

上面放置输入用户名,密码和验证码的三个文本输入框。其中验证码输入框后面放置一个图片,图片就来源于checkimage.aspx页面。用户输入三个信息后点击确定按钮进行登录。则运行该按钮的服务器段代码。
| private void cmdOK_Click(object sender, System.EventArgs e) { string UserName = this.txtUserName.Text ; string Password = this.txtPassword.Text ; string CheckCode = this.txtCheckCode.Text ; if( UserName == "张三" && Password == "abc" && checkimage.CheckCode( CheckCode ) ) { this.lblResult.Text = "<b>登录成功</b>"; this.RegisterStartupScript("a" , "<script>alert('登录成功');</script>"); } else { this.lblResult.Text = "<font color=red><b>用户登录信息错误,请重新输入</b></font>"; } } |
在该代码中,程序获得用户输入的用户名,密码和验证码,然后判断用户名密码是否正确,还调用checkimage的静态函数CheckCode来判断验证码是否正确。只有这三个信息都正确则登录成功,否则登录失败。
在少数情况下,程序生成的验证码图片难以辨认,则需要重新提供新的验证码图片,此时我们在登录页面中可以双击这个图片来更新验证码图片。显示验证码图片的HTML代码片断为
| <img src="checkimage.aspx" title='看不清楚,双击图片换一张。' ondblclick="this.src = 'checkimage.aspx?flag=' + Math.random() " border="1"> |
可以看到 ondblclick 事件处理中更新了图片来源,这里使用了一个毫无意义的flag页面参数,这是保证浏览器不会使用本地缓存的验证码图片而是下载最新的验证码图片。
用户双击图片后,浏览器重新调用checkimage.aspx页面,于是服务器端的验证码文本用了新的,而图片内容也随之更新。
由于每次尝试登录或更换验证码图片时,正确的验证码都是随机的发生改变,毫无规律,这样就很大的增强了登录页面的安全性。但这样做会让用户登录时需要辨认和输入验证码,这会降低应用程序的可用性。因此是否使用验证码技术是需要多方面权衡的。
小结在本次课程中,我们一起研究了验证码技术的原理,并使用C#在ASP.NET中实现了简单的验证码技术。验证码技术是一种安全防御技术,其中使用了一定的图形编程。这样看来图形编程应用是广泛的,可以为很多其他的技术提供支持。
| 相关文章 |