国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > .NET > 正文

c# .net 生成圖片驗證碼的代碼

2024-07-10 12:38:07
字體:
來源:轉載
供稿:網友

為了增強網站的安全性,我們在網站的登錄模塊或信息輸入模塊加入了驗證碼功能,那么在ASP.net中如何實現驗證碼呢?本文借助GDI+實現了這個功能。

.net中實現驗證碼功能的源代碼如下:

<%@ 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>

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 弥渡县| 宜黄县| 余庆县| 肇庆市| 楚雄市| 十堰市| 盱眙县| 濉溪县| 乐山市| 北京市| 丰顺县| 迁西县| 莱阳市| 老河口市| 丹凤县| 祁东县| 安吉县| 彭阳县| 监利县| 理塘县| 武隆县| 伽师县| 桂阳县| 花莲县| 朝阳区| 洪江市| 施秉县| 河源市| 商河县| 息烽县| 濉溪县| 板桥市| 万山特区| 股票| 白河县| 敦化市| 安乡县| 浦北县| 仙桃市| 江安县| 麻栗坡县|