简单的验证码控件

不是很漂亮,只是用于研究其原理;

是新建了一个ashx文件(一般处理程序,因为我还在学习中……)

 

在aspx页中的form表单中添加调用;

 <img src="验证码实例.ashx" alt="" />

 

using  System;
using  System.Collections.Generic;
using  System.Linq;
using  System.Web;
using  System.Drawing;
using  System.Drawing.Imaging;
using  System.Web.SessionState;

namespace  WebApp
{
    
///   <summary>
    
///  验证码实例 的摘要说明
    
///   </summary>
     public   class  验证码实例 : IHttpHandler, IRequiresSessionState    // 在一般处理程序中使用Session要实现该接口,在System.Web.SessionState中;
    {

        
public   void  ProcessRequest(HttpContext context)
        {
            context.Response.ContentType 
=   " image/JPEG " ;     // 返回jpg类型;
             using  (Bitmap bitmap  =   new  Bitmap( 140 80 ))   // 像素大小;
            {
                
using  (Graphics g  =  Graphics.FromImage(bitmap))  // 生成一个画板
                {

                    Random rand 
=   new  Random();
                    
int  code  =  rand.Next( 1000 999999 );    // 制定随机函数,用于限定字随机字符串大小;
                     string  strCode  =  code.ToString();
                    HttpContext.Current.Session[
" Code " =  strCode;    // 在一般处理程序中使用Session接口;
                    g.Clear(Color.YellowGreen);  // 指定背景颜色;
                    g.DrawString(strCode,  new  Font( " 微输雅黑 " 20 ), Brushes.White,  new  PointF( 15 25 ));   // 画的图片相关参数,(字体,大小),颜色,位置;
                    bitmap.Save(context.Response.OutputStream, ImageFormat.Jpeg);        // 输出到流中并保存为jpg格式;
                }
            }
        }

        
public   bool  IsReusable
        {
            
get
            {
                
return   false ;
            }
        }
    }
}

 

转载于:https://www.cnblogs.com/zhuiyi/archive/2011/05/03/2034874.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
.Net 验证件 操作简单,使用方便参数使用有详细介绍 拖入即可应用!!!!!! 添加到工具箱的步骤 1.将 Vincent.AutoAuthCode.dll 添加到项目的 Bin文件目录下 2.右键点击 Bin 目录 选择添加引用 找到添加的 Bin文件目录下 Vincent.AutoAuthCode.dll 3.在工具栏中,右键点击 常规 选项卡 再点击 选择项 4.在弹出的对话框中的右下方 点击 浏览 找到 Bin文件目录下 Vincent.AutoAuthCode.dll 打开 点击 确定 在 工具箱 的 常规选项 看到 AutcCode 件 直接拖到要使用验证码的页面位置 即可。 页面的点击事件会触发验证,无需后台代码验证 一、件特点: 1、使用方便,只需要从工具栏直接拖到页面即可自动验证,零代码使用。 2、自动完成客户端以及服务器的验证验证,Ajax验证,随用户输入即时 验证并友好提示。 3、可自定义验证码图片外观。 4、有水平方向垂直方向两种方式选择。 5、有数字、小写字母、大写字母三种及任意两种组合、三种组合字符选择。 6、兼容IE及FireFox。 二、使用说明。 1、属性。 IsMatch:指示用户输入的验证码是否正确 TextControlWidth:文本框件宽度 NextImgText:提示更换图片信息,该提示信息同时显示于图片上面及图片左边 IsShowNextImgText:是否在图片左边显示提示更换图片信息 EnableNextImgText:是否充许换一张图片 ErrorShowType:验证码错误显示方式 CodeStringType:验证码字符类型,组合枚举值,例如CodeStringTypes.Number|CodeStringTypes.LowerLetter CodeStringLength:验证码字符长度,最少为4 ImageType:验证码图像类型 IsMatchCase:验证验证时是否区分大小写 LayoutDirection":件各部分排列方向,排列的部分包括文本框、图片、"换一张图片"文本 EnableClientValidate:是否使用客户端脚本验证验证内容包括是否为空、长度是否正确 ImageStyle:验证码图像样式 如: TextControlWidth="90px" 设置 输入验证码的文本框宽度 其中ImageStyle为复类属性,其公开属性如下: ImageStyle-ImgBgColor:图片背景色 ImageStyle-ImgNoiseColor:图片噪声颜色 ImageStyle-ImgBorderColor"图片边框颜色 ImageStyle-TextColor1:文本颜色 ImageStyle-TextColor2:文本颜色2(如果文本为单色则无效) ImageStyle-TextFontSize:文本字体大小,以像素(pix)为单位,验证码图像大小根据此而变化,如果ImgSize大于由该值指定的大小,则图像大小为ImgSize ImageStyle-ImgSize:验证码图像大小,以像素(pix)为单位,如果TextFontSize指定的大小大于该值,则图像大小为TextFontSize指定的大小 ImageStyle-Width:验证码图像大小的宽度,以像素(pix)为单位,如果TextFontSize指定的大小大于该值,则图像大小为TextFontSize指定的大小 ImageStyle-Height:验证码图像大小的高度,以像素(pix)为单位,如果TextFontSize指定的大小大于该值,则图像大小为TextFontSize指定的大小 如: ImageStyle-Width=70 设置验证码图像大小的宽度 (值必须是整数) ImageStyle-ImgBgColor=#1D3647 图片背景色 (值不要添加单、双引号 [''," "])
可以使用以下步骤在WinForm中使用PictureBox件生成验证码: 1. 在WinForm中添加一个PictureBox件,并设置其大小和位置。 2. 在PictureBox的Paint事件中编写绘制验证码的代码。可以使用Graphics类中的方法绘制验证码图像,例如DrawString和DrawLines。 3. 生成随机的验证码文本,并将其保存在一个字符串变量中。 4. 将生成的验证码文本显示在PictureBox件中。可以使用Font、Brush和DrawString方法将文本绘制到PictureBox中。 5. 将生成的验证码文本与用户输入的验证码进行比较,以验证用户输入的验证码是否正确。 以下是一个示例代码,可以帮助您生成和验证基于PictureBox件的验证码: ```csharp public partial class Form1 : Form { // 生成的验证码文本 private string verificationCode; public Form1() { InitializeComponent(); } private void GenerateVerificationCode() { // 生成由4个随机数字组成的验证码 Random random = new Random(); verificationCode = random.Next(1000, 9999).ToString(); } private void pictureBox1_Paint(object sender, PaintEventArgs e) { // 绘制验证码图像 Graphics graphics = e.Graphics; graphics.Clear(Color.White); // 随机生成验证码颜色 Color[] colors = { Color.Black, Color.Red, Color.Blue, Color.Green, Color.Orange, Color.Brown, Color.DarkBlue }; Random random = new Random(); Color color = colors[random.Next(0, colors.Length)]; // 绘制验证码文本 Font font = new Font("Arial", 24, FontStyle.Bold); Brush brush = new SolidBrush(color); graphics.DrawString(verificationCode, font, brush, 10, 10); // 绘制干扰线条 Pen pen = new Pen(color, 2); for (int i = 0; i < 5; i++) { graphics.DrawLine(pen, random.Next(0, pictureBox1.Width), random.Next(0, pictureBox1.Height), random.Next(0, pictureBox1.Width), random.Next(0, pictureBox1.Height)); } } private void button1_Click(object sender, EventArgs e) { // 生成验证码 GenerateVerificationCode(); // 刷新PictureBox件 pictureBox1.Invalidate(); } private void button2_Click(object sender, EventArgs e) { // 验证用户输入的验证码是否正确 if (textBox1.Text == verificationCode) { MessageBox.Show("验证码正确!"); } else { MessageBox.Show("验证码错误,请重新输入!"); } } } ``` 在此示例代码中,当单击“生成验证码”按钮时,将调用GenerateVerificationCode方法来随机生成一个4位数的验证码。然后,在PictureBox的Paint事件中绘制验证码图像,并将生成的验证码文本显示在其中。最后,当单击“验证”按钮时,将检查用户输入的验证码是否与生成的验证码匹配。 请注意,此示例仅是基本实现,您可以根据自己的需求进行改进。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值