网站验证码源码(学习)

简介:


本代码直接复制进去就可以用了,刷新就可以看到验证码的变动。
这个验证码已经在 DotNet迅网 (http://www.16sw.com) 使用。

Default.aspx.cs
using System;
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
// myself
using System.Drawing;
using System.Drawing.Imaging;
using System.IO;

public  partial  class _Default : System.Web.UI.Page 
{
     public System.Web.UI.WebControls.Image verifyNumber =  new System.Web.UI.WebControls.Image();

     protected  void Page_Load( object sender, EventArgs e)
    {
         string tmp = RndNum(Convert.ToInt16( 6));
        Session[ " verify "] = tmp;
        ValidateCode(tmp);
    }

     private  void ValidateCode( string VNum)
    {
        Bitmap Img =  null;
        Graphics g =  null;
        MemoryStream ms =  null;
         int gheight = VNum.Length *  9;
        Img =  new Bitmap(gheight,  18);
        g = Graphics.FromImage(Img);
         // 背景颜色
        g.Clear(Color.WhiteSmoke);
         // 文字字体
        Font f =  new Font( " Tahoma "9);
         // 文字颜色
        SolidBrush s =  new SolidBrush(Color.Red);
        g.DrawString(VNum, f, s,  33);
        ms =  new MemoryStream();
        Img.Save(ms, ImageFormat.Jpeg);
        Response.ClearContent();
        Response.ContentType =  " image/Jpeg ";
        Response.BinaryWrite(ms.ToArray());
        g.Dispose();
        Img.Dispose();
        Response.End();
    }
     private  string RndNum( int VcodeNum)
   {
     string MaxNum= "";
     string MinNum= "";
     for ( int i =  0; i < VcodeNum; i++ )
    {
        MaxNum = MaxNum +  " 9 ";
    }
    MinNum=MaxNum.Remove( 0, 1);
    Random rd= new Random();   
     string VNum=Convert.ToString(rd.Next(Convert.ToInt32(MinNum),Convert.ToInt32(MaxNum)));
     return VNum;
   }
}



本文转自钢钢博客园博客,原文链接:http://www.cnblogs.com/xugang/archive/2008/02/18/1071803.html,如需转载请自行联系原作者

相关文章
|
NoSQL Redis 容器
【项目实战】基于Redis实现短信验证码登录 (附源码、思路)(三)
【项目实战】基于Redis实现短信验证码登录 (附源码、思路)(三)
383 0
|
1月前
|
存储 前端开发 Java
验证码案例 —— Kaptcha 插件介绍 后端生成验证码,前端展示并进行session验证(带完整前后端源码)
本文介绍了使用Kaptcha插件在SpringBoot项目中实现验证码的生成和验证,包括后端生成验证码、前端展示以及通过session进行验证码校验的完整前后端代码和配置过程。
95 0
验证码案例 —— Kaptcha 插件介绍 后端生成验证码,前端展示并进行session验证(带完整前后端源码)
|
5月前
图片验证码制作(附源码)
图片验证码制作(附源码)
|
6月前
|
缓存 算法 Java
Java【算法 05】通过时间获取8位验证码(每两个小时生成一个)源码分享
Java【算法 05】通过时间获取8位验证码(每两个小时生成一个)源码分享
50 0
|
6月前
|
XML 算法 Java
Android 开发人脸识别之自动识别验证码功能讲解及实现(超详细 附源码)
Android 开发人脸识别之自动识别验证码功能讲解及实现(超详细 附源码)
236 0
|
6月前
|
XML Java Android开发
Android Studio App开发之利用图片加载框架Glide实现刷新验证码功能(附源码 简单易懂)
Android Studio App开发之利用图片加载框架Glide实现刷新验证码功能(附源码 简单易懂)
63 0
|
移动开发 前端开发 JavaScript
Vue 利用Canvas标签实现动态验证码校验(前端必备附源码)
Vue 利用Canvas标签实现动态验证码校验(前端必备附源码)
470 0
|
Java
Java生成登录注册验证码+添加干扰选项,文章中含有源码
Java生成登录注册验证码+添加干扰选项,文章中含有源码
97 0
Java生成登录注册验证码+添加干扰选项,文章中含有源码
|
缓存 NoSQL 前端开发
【项目实战】基于Redis实现短信验证码登录 (附源码、思路)(二)
【项目实战】基于Redis实现短信验证码登录 (附源码、思路)(二)
269 0
|
存储 SQL JSON
【项目实战】基于Redis实现短信验证码登录 (附源码、思路)(一)
【项目实战】基于Redis实现短信验证码登录 (附源码、思路)(一)
1089 0