ASP.Net实现验证码(c#)

ASP.NET C#实现验证码制作 在ASP.NET网页开发中,验证码是一种常见的用于验证用户输入的机制。在实际应用中,我们通常还需要添加验证码的验证逻辑,以验证用户输入是否与生成的验证码一致。这可以通过在用户提交表单时,将用户输入的验证码与生成的验证码进行比较来实现。当用户点击刷新按钮时,会生成一个新的验证码,并将其显示在页面上的图片控件中。首先,我们需要在ASP.NET网页中添加一个用于显示验证码的图片控件和一个用于刷新验证码的按钮。接下来,我们需要在后台代码中生成验证码的逻辑。中,我们将生成随机的验证码,并将其绘制到图片控件上。 阅读详情

原文出处:http://www.youkuaiyun.com/Develop/Read_Article.asp?Id=22618

http://www.cnblogs.com/c21/archive/2006/07/25/371608.html#458773
上面是原文出处,是VB版!在评论中  cwbboy 给出了C#代码
自己参考了代码,实践了一下!OK记录一下!
生成图片的Gif.aspx文件!需要引入以下两名命名空间!
-----------------------------------start----------------------------------------------

using  System.Drawing;
using  System.Drawing.Imaging;
private   void  Page_Load( object  sender, System.EventArgs e)
  
{
  
// 在此处放置用户代码以初始化页面
  
//RndNum是一个自定义函数
  string VNum=RndNum(4); //这里的数字4代表显示的是4位的验证字符串!
  Session["VNum"]=VNum;
  ValidateCode(VNum);
  }

// 生成图像函数
   private   void  ValidateCode( string  VNum) 
  
{
  
int Gheight=(int)(VNum.Length * 11.5);
  
//gheight为图片宽度,根据字符长度自动更改图片宽度
  System.Drawing.Bitmap Img = new System.Drawing.Bitmap(Gheight,20);
  Graphics g 
= Graphics.FromImage(Img);
  g.DrawString(VNum,
new System.Drawing.Font("Arial",10),new System.Drawing.SolidBrush(Color.Red),3,3); 
  
//在矩形内绘制字串(字串,字体,画笔颜色,左上x.左上y) 
  System.IO.MemoryStream ms=new System.IO.MemoryStream();
  Img.Save(ms,System.Drawing.Imaging.ImageFormat.Png); 
  Response.ClearContent(); 
//需要输出图象信息 要修改HTTP头 
  Response.ContentType="image/Png";
  Response.BinaryWrite(ms.ToArray());
  g.Dispose();
  Img.Dispose(); 
  Response.End();
  }


// 生成随机数函数中从Vchar数组中随机抽取
// 字母区分大小写
public   string  RndNum( int  VcodeNum) 
  
{
  
string Vchar = "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[] VcArray = Vchar.Split(‘,‘) ;
   
string  VNum = "" ;//由于字符串很短,就不用StringBuilder了
   int temp = -1 ;//记录上次随机数值,尽量避免生产几个一样的随机数

   
//采用一个简单的算法以保证生成随机数的不同
   Random rand =new Random();
   
for ( int i = 1 ; i < VcodeNum+1 ; i++ ) 
   
{    
    
if ( temp != -1) 
    
{
     rand 
=new Random(i*temp*unchecked((int)DateTime.Now.Ticks));
    }
    
    
//int t =  rand.Next(35) ;
    int t=rand.Next(35);
    
if (temp != -1 && temp == t) 
    
{
     
return RndNum( VcodeNum );
    }

    temp 
= t  ;
    VNum 
+= VcArray[t];

   }

   
return VNum ;
  }

----------------------------------- end --------------------------------------------

下面是Login.Aspx在在调用提交按钮的响应事件中
public   void  doit( object  sender, System.EventArgs e)
  
{
   
if(Page.IsValid)
   
{
     
    
string VNum;
    VNum
=Session["VNum"].ToString();        
    ViewState[
"VNum"]=VNum;
    
if(this.Vcode.Text==ViewState["VNum"].ToString())
    
{ 

     Hover.Manage.CheckLogin obj
=new Hover.Manage.CheckLogin();
     
string name=username.Text;
     
string password=FormsAuthentication.HashPasswordForStoringInConfigFile(pass.Text.ToString(),"md5");
     
if(!obj.checklogin(name,password))
     
{
      Response.Redirect(
"../Error.aspx?action=Errorlogin");
      Response.End();
      
return;
     }

     
else
     
{
      Session.Add(
"adminname",name);
      Session.Add(
"adminpass",password);
      Response.Redirect(
"Default.aspx");
      Response.End();
      
return;
     }

     
    }

    
else
    
{
     Response.Write(
"<script>alert(/"请输入正确的附加码!/");</script>");
    }

   }

  }

   如果提交过来的验证字符串正确就验证是否是合法用户!
否则弹出提示返回登陆页
! 你也可以简化此页 !
   
if ( this .Vcode.Text == ViewState[ " VNum " ].ToString())
    
{ 
        Response.Write(
"验证码正确");
    }

   
else
    
{
        Response.Write(
"验证码错误!");
    }
 
ASP.NET中实现无刷新验证码的开发 - C# 在ASP.NET中,我们可以通过使用AJAX技术来实现无刷新验证码,提升用户体验。在项目中,我们需要创建一个验证码生成器,用于生成验证码图片和验证用户输入的验证码。同时,在表单中添加一个文本框用于用户输入验证码。当用户提交表单时,我们可以通过比较用户输入的验证码和Session中保存的验证码```html。在项目中,我们需要添加一些必要的引用,以便在后续的开发中使用。当用户提交表单时,我们通过比较用户输入的验证码和Session中保存的验证码来进行验证,如果不一致,则阻止表单提交并提示用户重新输入验证码。 阅读详情

相关推荐

机器学习【学校智慧食堂及其应用】

本文主要介绍机器学习【智慧食堂及其应用】

qq_201729558 2572

ASP.net 生成验证码

一.说明 此文是小白在学习张晨光老师的视频教学<<Asp.Net WEB服务器编程技术>>中做的学习笔记,一些知识点也是跟着教程走的,大家也可以去老师的主页去学习,谢谢大家. 二.生成验证码图片(checkcode.aspx.cs) using System; using System.Collections.Generic; using System.Drawing; using System.Drawing.Imaging; using System.IO; using Syst

m0_56227168的博客 1703

SpringCloud2025+SpringBoot3.5.0+gateway+webflux子服务路由报503

本来昨天就应该也记录下,免得忘记的,但是有点晚了,酒没写,真的是被坑惨了。当然这也是追求最新的代价,也是对新技术、老知识点的重温。依赖更粒度让架构的知识面更高,需要非常清楚另外说不定是有新的负载均衡要出现了,就想当初loadbalancer取代Ribbon一样好了,真是坑了半夜,昨晚都没有写,今天才复盘,希望能帮到大家,让更多在坑里的技术人爬出来。

zwrlj527的专栏 1998

ASP.NET-实现图形验证码

本文介绍了如何使用C#和ASP.NET创建一个简单而有效的图形验证码系统,包括生成随机验证码、绘制验证码图像以及将图像输出到客户端等步骤。ASP.NET实现图形验证码能够增强网站安全性,防止机器人攻击。通过生成随机验证码并将其绘制成图像,用户在输入验证码时增加了人机交互的难度。这种验证码系统对于保护网站免受恶意攻击和机器人恶意行为具有重要意义。

踏雨歌青春,诗酒趁年华 3104

FPGA实现AXI-Stream通信

本文介绍了在FPGA中实现AXI-Stream接口的工业级方案,重点解析了核心协议信号(TVALID/TREADY/TDATA/TLAST)与可选扩展信号,并提供了Verilog最小化实现示例。文章详细阐述了握手协议规则、时序约束方法,以及吞吐量优化技巧(如寄存器切片和双缓冲策略),同时给出了跨时钟域处理的异步FIFO解决方案。此外,还包含验证调试方法(Testbench结构和ILA触发设置)和典型应用场景(视频处理/网络传输),最后提供了资源消耗参考数据。该实现方案严格遵循Xilinx/Intel官方规范

whm128的博客 1464

独家开源|RK3588 平台 YOLOv5 Android 源码级解析:NPU 量化、多线程与目标跟踪实战

本文将带你完成一个完整的AI视觉项目:在搭载RK3588芯片的Android开发板上运行实时目标检测与跟踪应用。实战目标:成功运行官方YOLOV5摄像头实时检测案例技术深度:深入理解RKNN开发框架和源码实现核心技能:掌握NPU推理、多线程并发、目标跟踪等关键技术。

m0_71589036的博客 193

ASP.NET登录时验证码的制作与验证

ASP.NET 验证码的制作与校验(使用 cookie 传值) (1)验证码应该是图片格式,不能是文字格式,即无法用鼠标选中。 (2)验证码上应该有噪点和干扰线条。 (3)验证码应该回避相似字符,如“0”和“o”“I”和“1”等。 (4)验证码至少是数字和字母(含大小写)的组合,不应该是单纯的数字或字母,可以出现汉字。应该实现输入验证码字母字母“不区分大小写”。验证码中的内容,应该是随机生成。 (5)验证码,可以通过点击图片或旁边文字实现“看不清,换一张”的功能

将暮未暮缓缓归的博客 6274

Vibe Coding 工具实战案例全解:Cursor、Claude Code、Codex 真实项目 30 分钟到 4 小时快速构建指南(2026 年最新)

2026年VibeCoding工具实战案例精选:1)使用Cursor在30分钟内构建现代TodoList应用(Next.js+TS+Tailwind);2)通过ClaudeCode纯终端2小时开发3D飞行射击游戏(Three.js+R3F);3)利用OpenAICodex多Agent并行4小时完成SaaS全栈开发(Next.js+Supabase+Stripe)。案例均来自真实项目,覆盖从入门到生产级开发,重点展示:自然语言Prompt技巧、迭代反馈方法、工具特性对比(Cursor可视化最佳/Claude推

hy行者勇哥的博客 3180

C#-ASP.net实现验证码

一、定义验证码生成类(GDI+技术)二、ASPX页面前台代码。

qq_30552055的博客 346

【好玩的游戏项目】使用Docker快速部署属于你的RPG网页小游戏

【好玩的游戏项目】使用Docker快速部署属于你的RPG网页小游戏

jks212454的博客 5578

漫画安全HIDS、EDR、NDR、XDR

漫画安全HIDS、EDR、NDR、XDR

墨痕诉清风的博客 3446

C# ASP.NET Core Web API 框架 实现向手机发送验证码短信

C# ASP.NET Core Web API框架实现向手机发送验证码短信功能

2301_81898607的博客 942

地平线旭日X3 安装xfce桌面+VNC查看USB摄像头

VNC是Virtual Network Computing的缩写,它是一种使用RFB(Remote Frame Buffer)协议的用于控制远程电脑的图形桌面分享系统。xfce桌面相比于GNOME桌面更加轻量,占用的资源更少,在没有GPU的设备上也可以运行(旭日的Desktop版本从外观上好像就是xfce桌面,具体没有尝试)。可以使用专用的VNC客户端连接到开发板,例如vnc viewer。板子默认带有openssh-server,因此,WiFi热点连接成功后,就可以使用ssh登录开发板了。

bingdund的博客 509

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

Asp.net(C#)实现验证码功能 新建一个专门用来创建验证码图片的页面ValidateCode.aspx它的后台cs文件代码如下:PageLoadprivate void Page_Load(object sender, System.EventArgs e)        {            string checkCode = CreateRandomCode(4);        

2199

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

c# asp.net实现验证码

建立ValidateImg.aspx文件,里面代码如下:<!--Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/-->@ Page Language="c#" %>@ Import Namespace="System.Web"

苍鹰-GISRen 2506

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

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

新建一个专门用来创建验证码图片的页面ValidateCode.aspx它的后台cs文件代码如下:PageLoad 以下为引用的内容: privatevoidPage_Load(objectsender,System.EventArgse){stringchec...

weixin_30487701的博客 61

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

在ASP.NET下实现数字和字符相混合的验证码(C# Code)

<!--google_ad_client = "pub-2947489232296736";/* 728x15, 创建于 08-4-23MSDN */google_ad_slot = "3624277373";google_ad_width = 728;google_ad_height = 15;//--><script type="text/javascript"

zgqtxwd的专栏 371

简单C#、asp.net mvc验证码的实现

using System;using System.Collections.Generic;using System.Linq;using System.Web;using System.Text;using System.Drawing;using System.IO; namespace 验证码的实现.ValidateCode{ /// <summary> ...

anyan9579的博客 205
上一篇: SQL Server数据库开发的二十一条军规
下一篇: ASP.NET错误处理
FollowIT
博客等级 码龄21年 31粉丝 71原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值