验证码

简介: 网上转的 自己用着方便建一个验证码专用的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 
=   " 验证通过 " ;
        }
    }
目录
相关文章
|
缓存 负载均衡 网络协议
面试题22解析-CDN分析
题目:描述一下CDN的工作机制?
1471 0
|
6月前
|
虚拟化 iOS开发 MacOS
VMware ESXi 8.0U3d macOS Unlocker & OEM BIOS 2.7 集成网卡驱动和 NVMe 驱动 (集成驱动版)
VMware ESXi 8.0U3d macOS Unlocker & OEM BIOS 2.7 集成网卡驱动和 NVMe 驱动 (集成驱动版)
344 33
VMware ESXi 8.0U3d macOS Unlocker & OEM BIOS 2.7 集成网卡驱动和 NVMe 驱动 (集成驱动版)
|
5月前
|
IDE 开发工具 C++
JetBrains CLion 2025.1 发布 - C 和 C++ 跨平台 IDE
JetBrains CLion 2025.1 (macOS, Linux, Windows) - C 和 C++ 跨平台 IDE
217 0
|
7月前
|
存储 缓存 NoSQL
「缓存」会用很容易,用好才是技术活
本文对比了几种常用缓存的特点,主要介绍了基于Guava的本地缓存和基于Tair的分布式缓存,包含快速入门和深入原理两部分,并在最后提供了使用缓存时需要注意的事项。
|
DataWorks 安全 数据可视化
DataWorks Embed API - 手把手教您在自建的 Web 嵌入 DataWorks 数据血缘图
DataWorks 提供丰富的数据可视化界面,让用户能轻松地透过界面操作大数据业务,但仍有集成至自建 Web 界面的需求,减少切换页面的频率。下文就以透过阿里云令牌服务结合自建 Web 界面代理登录阿里云,做到嵌入DataWorks数据地图的血缘图。
399 1
DataWorks Embed API - 手把手教您在自建的 Web 嵌入 DataWorks 数据血缘图
|
开发工具 数据安全/隐私保护 git
【Devchat 插件】创建一个GUI应用程序,使用Python进行加密和解密
【Devchat 插件】创建一个GUI应用程序,使用Python进行加密和解密
263 0
|
缓存 监控 前端开发
调用摄像机播放画面,并且实现录制GIF动图预览和下载
调用摄像机播放画面,并且实现录制GIF动图预览和下载
|
安全 关系型数据库 MySQL
nacos无法连接远程数据库
nacos无法连接远程数据库
912 2
|
Linux 虚拟化
VMware虚拟机中Centos 6.x系统磁盘空间扩容实战
VMware虚拟机中Centos 6.x系统磁盘空间扩容实战
635 0