验证码

简介: 网上转的 自己用着方便建一个验证码专用的ValidateCode.aspx页前台代码“空”后台代码:using System;using System.Collections;using System.
网上转的 自己用着方便

建一个验证码专用的ValidateCode.aspx页
前台代码“空”
后台代码:
using  System;
using  System.Collections;
using  System.Configuration;
using  System.Data;
using  System.Linq;
using  System.Web;
using  System.Web.Security;
using  System.Web.UI;
using  System.Web.UI.HtmlControls;
using  System.Web.UI.WebControls;
using  System.Web.UI.WebControls.WebParts;
using  System.Xml.Linq;
using  System.Drawing;

public   partial   class  ValidateCode : System.Web.UI.Page
{
    
private   void  Page_Load( object  sender, System.EventArgs e)
    {
        
this .CreateCheckCodeImage(GenerateCheckCode());
    }

    
#region  Web 窗体设计器生成的代码
    
override   protected   void  OnInit(EventArgs e)
    {
        
//
        
//  CODEGEN: 该调用是 ASP.NET Web 窗体设计器所必需的。
        
//
        InitializeComponent();
        
base .OnInit(e);
    }

    
///   <summary>
    
///  设计器支持所需的方法 - 不要使用代码编辑器修改
    
///  此方法的内容。
    
///   </summary>
     private   void  InitializeComponent()
    {
        
this .Load  +=   new  System.EventHandler( this .Page_Load);
    }
    
#endregion

    
private   string  GenerateCheckCode()
    {
        
int  number;
        
char  code;
        
string  checkCode  =  String.Empty;

        System.Random random 
=   new  Random();

        
for  ( int  i  =   0 ; i  <   5 ; i ++ )
        {
            number 
=  random.Next();

            
if  (number  %   2   ==   0 )
                code 
=  ( char )( ' 0 '   +  ( char )(number  %   10 ));
            
else
                code 
=  ( char )( ' A '   +  ( char )(number  %   26 ));

            checkCode 
+=  code.ToString();
        }

        Response.Cookies.Add(
new  HttpCookie( " CheckCode " , checkCode));

        
return  checkCode;
    }

    
private   void  CreateCheckCodeImage( string  checkCode)
    {
        
if  (checkCode  ==   null   ||  checkCode.Trim()  ==  String.Empty)
            
return ;

        System.Drawing.Bitmap image 
=   new  System.Drawing.Bitmap(( int )Math.Ceiling((checkCode.Length  *   12.5 )),  22 );
        Graphics g 
=  Graphics.FromImage(image);

        
try
        {
            
// 生成随机生成器
            Random random  =   new  Random();

            
// 清空图片背景色
            g.Clear(Color.White);

            
// 画图片的背景噪音线
             for  ( int  i  =   0 ; i  <   25 ; i ++ )
            {
                
int  x1  =  random.Next(image.Width);
                
int  x2  =  random.Next(image.Width);
                
int  y1  =  random.Next(image.Height);
                
int  y2  =  random.Next(image.Height);

                g.DrawLine(
new  Pen(Color.Silver), x1, y1, x2, y2);
            }

            Font font 
=   new  System.Drawing.Font( " Arial " 12 , (System.Drawing.FontStyle.Bold  |  System.Drawing.FontStyle.Italic));
            System.Drawing.Drawing2D.LinearGradientBrush brush 
=   new  System.Drawing.Drawing2D.LinearGradientBrush( new  Rectangle( 0 0 , image.Width, image.Height), Color.Blue, Color.DarkRed,  1.2f true );
            g.DrawString(checkCode, font, brush, 
2 2 );

            
// 画图片的前景噪音点
             for  ( int  i  =   0 ; i  <   100 ; i ++ )
            {
                
int  x  =  random.Next(image.Width);
                
int  y  =  random.Next(image.Height);

                image.SetPixel(x, y, Color.FromArgb(random.Next()));
            }

            
// 画图片的边框线
            g.DrawRectangle( new  Pen(Color.Silver),  0 0 , image.Width  -   1 , image.Height  -   1 );

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

    }
    
 


=========
使用时,在新的页面上
前台代码:
< div >
        
< asp:Image Runat = " server "  ID = " ImageCheck "  ImageUrl = " ValidateCode.aspx " ></ asp:Image >
        
< asp:TextBox ID = " txtCheckCode "  runat = " server " ></ asp:TextBox >
        
< asp:Button ID = " Button1 "  runat = " server "  Text = " Button "  onclick = " Button1_Click "   />
        
< br />
        
< asp:Label ID = " lblMessage "  runat = " server "  Text = "" ></ asp:Label >
    
</ div >
后台代码:
protected   void  Button1_Click( object  sender, EventArgs e)
    {
        lblMessage.Text 
=   "" ;
        
if (Request.Cookies[ " CheckCode " ==   null )
        {
            lblMessage.Text 
=   " 您的浏览器设置已被禁用 Cookies,您必须设置浏览器允许使用 Cookies 选项后才能使用本系统。 " ;
            lblMessage.Visible 
=   true ;
             
return ;
        }

        
if  (String.Compare(Request.Cookies[ " CheckCode " ].Value, txtCheckCode.Text,  true !=   0 )
        {
            lblMessage.Text 
=   " 验证码错误,请输入正确的验证码。 " ;
            lblMessage.Visible 
=   true ;
            
return ;
        }
        
else
        {
            lblMessage.Text 
=   " 验证通过 " ;
        }
    }
目录
相关文章
|
27天前
生成验证码
生成验证码
12 0
|
8月前
|
缓存 前端开发 NoSQL
南南的文章-验证码还能这样生成?
南南的文章-验证码还能这样生成?
59 0
南南的文章-验证码还能这样生成?
|
10月前
|
缓存 JavaScript 安全
|
机器学习/深度学习 人工智能 前端开发
关于验证码,你不知道的一些问题!
关于验证码,大家也许会有很多疑问,下面我总结了一些常见问题。
关于验证码,你不知道的一些问题!
|
前端开发 C# 数据安全/隐私保护
C#验证码
验证码通常是为了区分用户是人还是计算机,也可以防止破解密码、刷票等恶意行为,而客户端上多数会用在关键操作上,比如购买、登录、注册等场景。现在验证码的种类样式也特别多,今天教大家如何用C#做出滑动拼图验证码吧~
C#验证码
|
Web App开发 Java
|
C# 图形学 索引