隐锋的BLOG
ASP,.net开发
VerifyCode.cs类,代码如下:
using System;
using System.Web;
using System.IO;
using System.Drawing;

namespace HOH
{
    
/// <summary>
    
/// VerifyCode 的摘要说明。
    
/// </summary>

    public class VerifyCode
    
{
        
// Properties

        
验证码长度(默认4个验证码的长度)

        
验证码字体大小(默认12像素)

        
边框补(默认2像素)

        
是否输出燥点(默认不输出)

        
输出燥点的颜色(默认灰色)

        
自定义背景色(默认白色)

        
自定义随机颜色数组

        
自定义字体数组

        
自定义随机码字符串序列(使用逗号分隔)

        
#region 生成校验码图片
        
/**/
        public Bitmap CreateImageCode(string code)
        

        
#endregion


        
#region 将创建好的图片输出到页面
        
/**/
        public void CreateImageOnPage(string code, HttpContext context)
        

        
#endregion


        
生成随机字符码

    }

}




生成验证码的页面CheckCode.aspx的代码:

using System;
using System.Collections;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Web;
using System.Web.SessionState;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.HtmlControls;

namespace HOH
{
    
/// <summary>
    
/// CheckCode 的摘要说明。
    
/// </summary>

    public class CheckCode : System.Web.UI.Page
    
{

        
验证码长度(默认4个验证码的长度)

        
验证码字体大小(默认12像素)

        
边框补(默认2像素)

        
是否输出燥点(默认不输出)

        
输出燥点的颜色(默认灰色)

        
自定义背景色(默认白色)

        
自定义随机颜色数组

        
自定义字体数组

        
自定义随机码字符串序列(使用逗号分隔)

        
private void Page_Load(object sender, System.EventArgs e)
        
{
            HOH.VerifyCode v 
= new HOH.VerifyCode();
   
            v.Length 
= this.length;
   
            v.FontSize 
= this.fontSize;
   
            v.Chaos 
= this.chaos;
   
            v.BackgroundColor 
= this.backgroundColor;
   
            v.ChaosColor 
= this.chaosColor;

            v.CodeSerial 
= this.codeSerial;

            v.Colors 
= this.colors;

            v.Fonts 
= this.fonts;

            v.Padding 
= this.padding;

            
string code = v.CreateVerifyCode();    //取随机码

            v.CreateImageOnPage(code, 
this.Context);  // 输出图片
 
            Session[
"CheckCode"= code.ToLower();   // 使用Session["CheckCode"]取验证码的值
   
        }


        
#region Web 窗体设计器生成的代码
        
override protected void OnInit(EventArgs e)
        

  
        
/// <summary>
        
/// 设计器支持所需的方法 - 不要使用代码编辑器修改
        
/// 此方法的内容。
        
/// </summary>

        private void InitializeComponent()
        
{    
            
this.Load += new System.EventHandler(this.Page_Load);

        }

        
#endregion

    }

}



调用验证码的页面的HTML代码如下:
<%@ Page language="c#" Codebehind="Test.aspx.cs" AutoEventWireup="false" Inherits="HOH.Test" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" >
<HTML>
    
<HEAD>
        
<title>Test</title>
        
<meta name="GENERATOR" Content="Microsoft Visual Studio .NET 7.1">
        
<meta name="CODE_LANGUAGE" Content="C#">
        
<meta name="vs_defaultClientScript" content="JavaScript">
        
<meta name="vs_targetSchema" content="http://schemas.microsoft.com/intellisense/ie5">
    
</HEAD>
    
<body>
        
<form id="Form1" method="post" runat="server">
            
<TABLE id="Table1" cellSpacing="1" cellPadding="1" width="300" border="0">
                
<TR>
                    
<TD><FONT face="宋体" color="#ff3333">验证码事例</FONT></TD>
                    
<TD><IMG src="CheckCode.aspx"></TD>
                
</TR>
            
</TABLE>
        
</form>
    
</body>
</HTML>

posted on 2006-12-15 15:54  糊涂隐锋  阅读(228)  评论(0)    收藏  举报