c# .net 生成图片验证码的代码_实用技巧

说明:
 .net 万岁...
 .net framework 的类库真是太强了, 用 GDI+ 可以干N多N多事情.
  广告时间:
 shawl.qiu C# CMS 系统 预计40天后开始编码, 现在逐步设计中, 免得到时求职说什么什么作品...唉.
 PS: 今天求职真是惨不忍睹, 谁要招网页相关的请联系 13435580019, 邱先生. 
 什么地方俺都去, 工资只要能过活就行,  但是食宿问题得解决.
 shawl.qiu
 2007-02-01
 http://blog.csdn.net/btbtd
 class checkcode:

复制代码 代码如下:

<%@ Page Language="C#" AutoEventWireup="True" %>  
<%@ import Namespace="System.Drawing"%>  
<%@ import Namespace="System.Drawing.Drawing2D"%>  
<%@ import Namespace="System.Web"%>  
<script runat="server">  
 private void Page_Load(object sender, System.EventArgs e)  
 {  
  String sRndStr=checkcode.rndStr(4);  
  checkcode.general(sRndStr);  
 }   
/*-----------------------------------------------------------------------------------*\  
 * shawl.qiu c# .net checkcode class v1.0  
\*-----------------------------------------------------------------------------------*/  
//---------------------------------------------------------------------begin class checkcode  
public class checkcode  
{  
 //-----------------------------------begin event  
 public checkcode()  
 {  
 }  
 ~checkcode()  
 {  
 }  
 //-----------------------------------end event  
 //-----------------------------------begin public constant  
 //-----------------------begin about  
 public const String auSubject="shawl.qiu c# .net checkcode class";  
 public const String auVersion="v1.0";  
 public const String au="shawl.qiu";  
 public const String auEmail="shawl.qiu@gmail.com";  
 public const String auBlog="http://blog.csdn.net/btbtd";  
 public const String auCreateDate="2007-2-1";  
 //-----------------------end about  
 //-----------------------------------end public constant  
 //-----------------------------------begin public static method  
 public static void general(String sCc)  
 {  
  Int32 ccLen=sCc.Length;  
  String ccFtFm="Arial";  
  Int32 ccFtSz=12;  
  Int32 ccWidth=ccLen*ccFtSz+1;  
  Int32 ccHeight=ccFtSz+5;  
  using(Bitmap oImg = new Bitmap(ccWidth, ccHeight))  
  {  
   using(Graphics oGpc=Graphics.FromImage(oImg))  
   {  
    HatchBrush hBrush = new HatchBrush(HatchStyle.DashedVertical,  
      Color.Yellow, Color.Silver);   
    oGpc.FillRectangle(hBrush, 0, 0, ccWidth, ccWidth);  
    oGpc.DrawString(sCc,new System.Drawing.Font(ccFtFm,ccFtSz, FontStyle.Bold),  
     new System.Drawing.SolidBrush(Color.Black),0,0);   
    //-----------------------边框  
    Pen blackPen = new Pen(Color.Black, 1);  
    oGpc.DrawLine(blackPen, 0, ccHeight, 0, 0); // 左竖线  
    oGpc.DrawLine(blackPen, 0,0,ccWidth,0); // 顶横线  
    oGpc.DrawLine(blackPen, ccWidth-1,0,ccWidth-1,20); // 右竖线  
    oGpc.DrawLine(blackPen, 0, ccHeight-1, ccWidth, ccHeight-1); // 底横线  
    writeImg(oImg);  
   }  
  }  
 } // end public static void general  
 public static String rndStr(Int32 len)  
 {  
  String sTemp="";  
  String sForRnd="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,V,W,X,Y,Z";  
  String[] aRnd=sForRnd.Split(',');  
  Random oRnd=new Random();  
  Int32 iArLen=aRnd.Length;  
  for(Int32 i=0; i<len; i++)  
  {  
   sTemp+=aRnd[oRnd.Next(0,iArLen)];  
  }  
  return sTemp;  
 } // end public static String rndStr  
 //-----------------------------------end public static method  
 //-----------------------------------begin private static method  
 private static void writeImg(Bitmap oImg)  
 {  
  using(System.IO.MemoryStream ms=new System.IO.MemoryStream())  
  {  
   oImg.Save(ms,System.Drawing.Imaging.ImageFormat.Png);   
   HttpContext.Current.Response.ClearContent();    
   HttpContext.Current.Response.ContentType="image/Png";  
   HttpContext.Current.Response.BinaryWrite(ms.ToArray());  
  }  
 } // end private static void writeImg  
}  
//---------------------------------------------------------------------end class checkcode  
</script>  

时间: 2024-10-11 22:36:42

c# .net 生成图片验证码的代码_实用技巧的相关文章

.NET 中英文混合验证码实现代码_实用技巧

最终效果如图: CheckCode.aspx.cs代码如下 复制代码 代码如下: protected void Page_Load(object sender, EventArgs e) { //获取GB2312编码页(表) /**//** * 生成中文验证验码所要使用的方法 * 注,生成中文验证码时要改变一下生成验证码图片的宽度 * var imageCode = new System.Drawing.Bitmap((int)Math.Ceiling((code.Length * 22.5))

Asp.net(C#)实现验证码功能代码_实用技巧

新建一个专门用来创建验证码图片的页面ValidateCode.aspx 它的后台cs文件代码如下: PageLoad 复制代码 代码如下: private void Page_Load(object sender, System.EventArgs e) { string checkCode = CreateRandomCode(4); Session["CheckCode"] = checkCode; CreateImage(checkCode); } 其中CreateRandomC

asp.net(C#) 生成随机验证码的代码_实用技巧

常用的生成验证码程序 ,图片效果如下:    源程序如下: 复制代码 代码如下: using System;  using System.IO;  using System.Drawing;  using System.Drawing.Imaging;  using System.Text;  using System.Collections;  using System.Web;  using System.Web.UI;  using System.Web.UI.WebControls; 

MVC4制作网站教程第二章 部分用户功能实现代码_实用技巧

用户部分要实现的功能有: 序 一.用户  1.1用户注册  1.2用户登录  1.3修改密码  1.4修改资料 要实现这些目的首先新建用户(Model)模型 /// <summary> /// 用户模型 /// </summary> public class User { [Key] public int UserId { get; set; } /// <summary> /// 用户组Id /// </summary> [Display(Name=&qu

MVC4制作网站教程第四章 部分栏目功能实现代码_实用技巧

序 一.用户 二.用户组 三.栏目 3.1添加栏目 3.2浏览栏目 3.3更新栏目 3.4删除栏目 3.5前台栏目浏览 -- 栏目模型: 模型应有一下字段:栏目名称,父栏目id,栏目类型,内容模型,栏目视图,内容视图,链接地址,栏目排序.暂时先想到这么多,先这这么写着.  栏目名称和父栏目id不用说很简单.  栏目类型有三种:普通栏目-就是一般的栏目:单页栏目--是指栏目就是一个页面,像公司介绍,联系地址等:外部链接-是指栏目点一下就跳转到一个链接.  内容模型--是指栏目为普通栏目时,栏目的内

ASP.NET MVC验证码功能实现代码_实用技巧

前台 复制代码 代码如下: <img id="vcodeimg" src="/Home/VCode" width="70"                                    height="25" />                                 <span                                    style="cursor: p

asp.net下中文验证码,免费开源代码_实用技巧

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.Ht

asp.net登录验证码实现方法_实用技巧

前端添加的标签和方法: 验证码: 复制代码 代码如下: <input id="txtVerifyCode" type="text" maxlength="5" style="line-height: 30px;  height: 30px; width: 80px;border:solid 1px #d4d4d4;" class="input"/> <img src=""

asp.net简单生成验证码的方法_实用技巧

本文实例讲述了asp.net简单生成验证码的方法.分享给大家供大家参考,具体如下: 1.新建一个一般处理程序 namespace WebApplication1 { /// <summary> /// $codebehindclassname$ 的摘要说明 /// </summary> [WebService(Namespace = "http://tempuri.org/")] [WebServiceBinding(ConformsTo = WsiProfil