asp.net验证码的简单制作

实际上关于asp.net验证码制作的文章已经很多很多了,但是今天还是要和大家继续分享,亲,可以综合几篇实例,编写出适用于自己网站的ASP.NET验证码,大概也就两大部分:

先建立一个asp.net窗体ValidateCode.aspx;不写任何东西。直接在后台ValidateCode.aspx.cs中写如下代码:

    protected void Page_Load(object sender, EventArgs e)
    {
      string validateCode = CreateValidateCode();//生成验证码
      Bitmap bitmap = new Bitmap(imgWidth,imgHeight);//生成Bitmap图像
      DisturbBitmap(bitmap); //图像背景
      DrewValidateCode(bitmap,validateCode);//绘制验证码图像
      bitmap.Save(Response.OutputStream,ImageFormat.Gif);//保存图像,等待输出 

    }

    private int codeLen = 4;//验证码长度
    private int fineness = 85;//图片清晰度
    private int imgWidth = 48;//图片宽度
    private int imgHeight = 24;//图片高度
    private string fontFamily = "Times New Roman";//字体名称
    private int fontSize = 14;//字体大小
    //private int fontStyle = 0;//字体样式
    private int posX = 0;//绘制起始坐标X
    private int posY = 0;//绘制坐标Y
    private string CreateValidateCode() //生成验证码
    {
      string validateCode = "";
      Random random = new Random();// 随机数对象
      for (int i = 0; i < codeLen; i++)//循环生成每位数值
      {
        int n = random.Next(10);//数字
        validateCode += n.ToString();
      }
      Session["vcode"] = validateCode;//保存验证码 这Session是在前台调用的。
      return validateCode;// 返回验证码
    }

    private void DisturbBitmap(Bitmap bitmap)//图像背景
    {
      Random random = new Random();//通过随机数生成
      for (int i = 0; i < bitmap.Width; i++)//通过循环嵌套,逐个像素点生成
      {
        for (int j = 0; j < bitmap.Height; j++)
        {
          if (random.Next(90) <= this.fineness)
            bitmap.SetPixel(i, j, Color.LightGray);
        }
      }
    }
    private void DrewValidateCode(Bitmap bitmap, string validateCode)//绘制验证码图像
    {
      Graphics g = Graphics.FromImage(bitmap);//获取绘制器对象
      Font font = new Font(fontFamily, fontSize, FontStyle.Bold);//设置绘制字体
      g.DrawString(validateCode, font, Brushes.Black, posX, posY);//绘制验证码图像
    }

在Login.aspx窗体页面中实现如下图功能:

Login.aspx窗体前台:

//这个函数是在点击验证码图片就会更换验证码
//可以使用微软自带的jqury.js 下面jquery-1.4.1.min.js版本之上的。或者在jquery官网上下载就可以。
 <script src="styles/jquery-1.4.1.min.js" type="text/javascript"></script>
     function f_refreshtype() {
       var Image1 = document.getElementByIdx_x_x_x("img");
       if (Image1 != null) {
         Image1.src = Image1.src + "?";
       }
     }
---<img src="ValidateCode.aspx" id="img" onclick="f_refreshtype()" width="50px"/>//调用函数,实现更换验证码

后台代码:点击登录验证用户是否输入正确。

  string usercode = txtcode.Text.Trim();
      if (usercode == Session["vcode"].ToString())//Session["vcode"]
      {
  }

其他代码就是跟其他一样。

以上就是跟大家分享的关于生成ASP.NET验证码的过程,希望大家可以学以致用。

(0)

相关推荐

  • 12306动态验证码启发之ASP.NET实现动态GIF验证码(附源码)

    12306网站推出"彩色动态验证码机制",新版验证码不但经常出现字符叠压,还不停抖动,不少人大呼"看不清",称"那个验证码,是毕加索的抽象画么!"铁总客服则表示:为了能正常购票只能这样.而多家抢票软件接近"报废",引发不少网友不满的吐槽称"太抽象太艺术了". 以前做项目有时候也会用到验证码,但基本都是静态的,这次也想凑凑12306的热闹.闲言少续,切入正题,先上代码. 实现方法: public void S

  • asp.net生成字母和数字混合图形验证码

    验证码技术是网站开发过程中比较重要的技术,可以防止非法人员利用注册机或者登陆工具来攻击我们的网站.下面是效果图: 具体实现方法如下: 1.主要思路是:引用Using System.Drawing命名空间,利用Graphics的FromImage方法创建一个画布,同时设置画布的宽和高,然后通过Graphics类 的DrawString方法随机生成的字符串绘制到画布中,绘制验证码的同时,在画布中利用SetPixel方法绘制一些色点,从而防止非法人员利用机器 人来进行登陆.当我们绘制验证码完毕后,在需

  • MVC使用极验验证制作登录验证码学习笔记7

    在之前的项目中,如果有需要使用验证码,基本都是自己用GDI+画图出来,简单好用,但是却也存在了一些小问题,首先若较少干扰线,则安全性不是很高,验证码容易被机器识别,若多画太多干扰线条,机器人识别率下降的同时,人眼的识别率也同步下降(震惊哭).更为重要的是,GDI+绘制的验证码一般来说也不会很美观,如果做一个炫酷的登陆界面却配了这样一个验证码,画风诡异,丑到极致. 再后来浏览网页的过程中,发现很多很多网站项目中都使用了一种叫极验验证的验证码,采用移动滑块的方式进行验证,方便美观.而一番搜索之后了解

  • asp.net登录验证码实现方法

    前端添加的标签和方法: 验证码: 复制代码 代码如下: <input id="txtVerifyCode" type="text" maxlength="5" style="line-height: 30px;  height: 30px; width: 80px;border:solid 1px #d4d4d4;" class="input"/>&nbsp<img src=&qu

  • 详解ASP.NET验证码的生成方法

    一般验证码的生成方法都是相同的,主要的步骤都有两步 第一步:随机出一系统验证码的数字或字母,顺便把随机生成的数字或字母写入Cookies 或者 Session. 第二步:用第一步随机出来的数字或字母来合成图片. 可以看出来验证码的复杂度主要是第二步来完成,你可以根据自己所要的复杂度来设定. 我们一起来看看:  第一步:随机生成数字或字母的方法 /// <summary> /// 生成验证码的随机数 /// </summary> /// <returns>返回五位随机数&

  • ASP.NET验证码实现(附源码)

    首先看下效果实现(由于gif屏幕录制软件是即时找的,有些失祯) 代码主要就是绘制验证码类的实现 using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Drawing; using System.IO; namespace SecurityCodePic { public class DrawingSecurityCode { /// <summary>

  • .net生成验证码

    本文为大家分享了.net生成验证码所有代码,大家可以动手操作一下,会有意想不到的收获. 先给大家看看效果图: 页面代码: <html xmlns="http://www.w3.org/1999/xhtml"> <head runat="server"> <title>验证码</title> <script type="text/javascript"> //换一张 function ch

  • 深入学习.net验证码生成及使用方法

    小课堂:验证码的作用: 几年前,大部分网站.论坛之类的是没有验证码的,因为对于一般用户来说验证码只是增加了用户的操作,降低了用户的体验.但是后来各种灌水机器人.投票机器人.恶意注册机器人层出不穷,大大增加了网站的负担同时也给网站数据库带来了大量的垃圾数据.为了防止各种机器人程序的破坏,于是程序员想出了只有人眼能够识别的,程序不容易识别的验证码! 验证码是一个图片,将字母.数字甚至汉字作为图片的内容,这样一张图片中的内容用人眼很容易识别,而程序将无法识别.在进行数据库操作之前(比如登录验证.投票.

  • ASP.NET验证码(3种)

    日常生活中我们在使用网站时都会遇到验证码,大家有没有想过为什么要使用验证码? 其实验证码的作用就是防止恶意破解密码.刷票.论坛灌水.刷页.有效防止某个黑客对某一个特定注册用户用特定程序暴力破解方式进行不断的登录尝试.今天就跟大家分享ASP.NET的三种验证码. 1.GSC_WebControlLibrary 这是在网上找到的一个控件,非常好用.但是效果不是特别好(见下图. )虽然容易使用,所有的属性都可以像控件一样设置,但是可用性不太高.用户不能自定义,而且看起来这个验证码效果不太好. 效果:

  • asp.net简单生成验证码的方法

    本文实例讲述了asp.net简单生成验证码的方法.分享给大家供大家参考,具体如下: 1.新建一个一般处理程序 namespace WebApplication1 { /// <summary> /// $codebehindclassname$ 的摘要说明 /// </summary> [WebService(Namespace = "http://tempuri.org/")] [WebServiceBinding(ConformsTo = WsiProfil

随机推荐