Asp.net(C#)实现验证码功能

ValidateCode.aspx
<% @ Page Language = " C# "  AutoEventWireup = " true "  CodeFile = " ValidateCode.aspx.cs "  Inherits = " ValidateCode "   %>

<! DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd" >

< html  xmlns ="http://www.w3.org/1999/xhtml"   >
< head  runat ="server" >
    
< title > 无标题页 </ title >
</ head >
< body >
    
< form  id ="form1"  runat ="server" >
    
< div >
    
    
</ div >
    
</ form >
</ body >
</ html >
ValidateCode.aspx.cs
using  System;
using  System.Data;
using  System.Configuration;
using  System.Collections;
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;
using  System.Drawing;

public  partial  class  ValidateCode : System.Web.UI.Page
{
    
protected   void  Page_Load( object  sender, EventArgs e)
    {
        
string  checkCode  =  CreateRandomCode( 4 );
        Session[
" CheckCode " =  checkCode;
        CreateImage(checkCode);
    }

    
private   string  CreateRandomCode( int  codeCount)
    {
        
string  allChar  =   " 0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,W,X,Y,Z " ;
        
string [] allCharArray  =  allChar.Split( ' , ' );
        
string  randomCode  =   "" ;
        
int  temp  =   - 1 ;

        Random rand 
=   new  Random();
        
for  ( int  i  =   0 ; i  <  codeCount; i ++ )
        {
            
if  (temp  !=   - 1 )
            {
                rand 
=   new  Random(i  *  temp  *  (( int )DateTime.Now.Ticks));
            }
            
int  t  =  rand.Next( 35 );
            
if  (temp  ==  t)
            {
                
return  CreateRandomCode(codeCount);
            }
            temp 
=  t;
            randomCode 
+=  allCharArray[t];
        }
        
return  randomCode;
    }

    
private   void  CreateImage( string  checkCode)
    {
        
int  iwidth  =  ( int )(checkCode.Length  *   11.5 );
        System.Drawing.Bitmap image 
=   new  System.Drawing.Bitmap(iwidth,  20 );
        Graphics g 
=  Graphics.FromImage(image);
        Font f 
=   new  System.Drawing.Font( " Arial " 10 , System.Drawing.FontStyle.Bold);
        Brush b 
=   new  System.Drawing.SolidBrush(Color.White);
        
// g.FillRectangle(new System.Drawing.SolidBrush(Color.Blue),0,0,image.Width, image.Height);
        g.Clear(Color.Blue);
        g.DrawString(checkCode, f, b, 
3 3 );

        Pen blackPen 
=   new  Pen(Color.Black,  0 );
        Random rand 
=   new  Random();
        
for  ( int  i  =   0 ; i  <   5 ; i ++ )
        {
            
int  y  =  rand.Next(image.Height);
            g.DrawLine(blackPen, 
0 , y, image.Width, y);
        }

        System.IO.MemoryStream ms 
=   new  System.IO.MemoryStream();
        image.Save(ms, System.Drawing.Imaging.ImageFormat.Jpeg);
        Response.ClearContent();
        Response.ContentType 
=   " image/Jpeg " ;
        Response.BinaryWrite(ms.ToArray());
        g.Dispose();
        image.Dispose();
    }
}

引用页代码:

<% @ Page Language = " C# "  AutoEventWireup = " true "  CodeFile = " Image.aspx.cs "  Inherits = " Image "   %>

<! DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd" >

< html  xmlns ="http://www.w3.org/1999/xhtml"   >
< head  runat ="server" >
    
< title > 无标题页 </ title >
</ head >
< body >
    
< form  id ="form1"  runat ="server" >
    
< div >
        
< asp:Image  ID ="Image1"  runat ="server"  ImageUrl ="ValidateCode.aspx"   /></ div >
    
</ form >
</ body >
</ html >
截图:
完整代码下载: asp.net实现验证码

转载于:https://www.cnblogs.com/kfcccer/archive/2007/05/20/753443.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值