婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁(yè) > 知識(shí)庫(kù) > ASP.NET驗(yàn)證碼實(shí)現(xiàn)(附源碼)

ASP.NET驗(yàn)證碼實(shí)現(xiàn)(附源碼)

熱門(mén)標(biāo)簽:海東防封電銷卡 上海市三維地圖標(biāo)注 西寧電銷外呼系統(tǒng)公司 南昌自動(dòng)外呼系統(tǒng)線路 寧德防封版電銷卡 安陸市地圖標(biāo)注app 云南外呼系統(tǒng)代理 聊城智能電銷機(jī)器人電話 辦公用地圖標(biāo)注網(wǎng)點(diǎn)怎么操作

首先看下效果實(shí)現(xiàn)(由于gif屏幕錄制軟件是即時(shí)找的,有些失禎)

代碼主要就是繪制驗(yàn)證碼類的實(shí)現(xiàn)

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Drawing;
using System.IO;

namespace SecurityCodePic
{
 public class DrawingSecurityCode
 {
  /// summary>
  /// 生成驗(yàn)證碼,并返回
  /// /summary>
  /// returns>/returns>
  public string GetSecurityCode(int n)
  {
   string code = GenerateCheckCode(n);
   CreateCheckCodeImage(code);
   return code;
  }

  /// summary>
  /// 動(dòng)態(tài)生成指定數(shù)目的隨機(jī)數(shù)或字母
  /// /summary>
  /// param name="num">整數(shù)/param>
  /// returns>返回驗(yàn)證碼字符串/returns>
  private string GenerateCheckCode(int num)
  {
   int number;//定義變量
   char code;
   string checkCode = String.Empty; //空字符串,只讀
   Random random = new Random(); //定義隨機(jī)變量實(shí)例
   for (int i=0; i  num;i++ )
   {
    //利用for循環(huán)生成指定數(shù)目的隨機(jī)數(shù)或字母
    number = random.Next(); //返回一個(gè)小于指定的最大值的非負(fù)的隨機(jī)數(shù) next有三個(gè)構(gòu)造函數(shù) 
    if (number % 2 == 0)
    {//產(chǎn)生一個(gè)一位數(shù)
     code = (char)('0' + (char)(number % 10));
    }
    else
    { //產(chǎn)生一個(gè)大寫(xiě)字母
     code = (char)('A'+(char)(number % 26));
    }
    checkCode += code.ToString();
   }
   return checkCode;
  }

  /// summary>
  /// 根據(jù)驗(yàn)證碼字符串生成驗(yàn)證碼圖片
  /// /summary>
  /// param name="checkCode">驗(yàn)證碼字符串/param>
  private void CreateCheckCodeImage(string checkCode)
  {

   if (checkCode == null || checkCode.Trim() == String.Empty) return;
   // 引用System.Drawing類庫(kù)
   Bitmap myImage = new Bitmap(80, 30);//生成一個(gè)指定大小的位圖
   Graphics graphics = Graphics.FromImage(myImage); //從一個(gè)位圖生成一個(gè)畫(huà)布
   try
   {
    graphics.Clear(Color.White); //清除整個(gè)繪畫(huà)面并以指定的背景色填充,這里是把背景色設(shè)為白色
    Random random = new Random(); //實(shí)例化一個(gè)偽隨機(jī)數(shù)生成器

    //畫(huà)圖片的前景噪音點(diǎn),這里有100個(gè)
    for (int i = 0; i  100; i++)
    {
     int x = random.Next(myImage.Width);
     int y = random.Next(myImage.Height);
     myImage.SetPixel(x, y, Color.FromArgb(random.Next()));//指定坐標(biāo)為x,y處的像素的顏色
    }

    //畫(huà)圖片的背景噪音線,這里為2條
    for (int i = 0; i  2; i++)
    {
     int x1 = random.Next(myImage.Width);
     int x2 = random.Next(myImage.Width);
     int y1 = random.Next(myImage.Height);
     int y2 = random.Next(myImage.Height);
     graphics.DrawLine(new Pen(Color.Black), x1, y1, x2, y2); //繪制一條坐標(biāo)x1,y1到坐標(biāo)x2,y2的指定顏色的線條,這里的線條為黑色
    }

    Font font = new Font("Arial", 15, FontStyle.Bold); //定義特定的文本格式,這里的字體為Arial,大小為15,字體加粗
    //根據(jù)矩形、起始顏色和結(jié)束顏色以及方向角度產(chǎn)生一個(gè)LinearGradientBrush實(shí)例---線性漸變
    System.Drawing.Drawing2D.LinearGradientBrush brush =
     new System.Drawing.Drawing2D.LinearGradientBrush(
      new Rectangle(0, 0, myImage.Width, myImage.Height),//在坐標(biāo)0,0處實(shí)例化一個(gè)和myImage同樣大小的矩形
      Color.Blue, Color.Red, 1.2f, true);
    //繪制文本字符串
    graphics.DrawString(checkCode, font, brush, 2, 2);

    //繪制有坐標(biāo)對(duì)、寬度和高度指定的矩形---畫(huà)圖片的邊框線
    graphics.DrawRectangle(new Pen(Color.Silver), 0, 0, myImage.Width - 1, myImage.Height - 1);
    //創(chuàng)建其支持存儲(chǔ)器為內(nèi)存的流
    MemoryStream ms = new MemoryStream();
    //將此圖像以指定格式保存到指定的流中
    myImage.Save(ms, System.Drawing.Imaging.ImageFormat.Gif); //這里是以gif的格式保存到內(nèi)存中
    HttpContext.Current.Response.ClearContent(); //清除緩沖區(qū)流中的所有內(nèi)容輸出
    HttpContext.Current.Response.ContentType = "image/Gif"; //獲取或設(shè)置輸出流的HTTP MIME類型
    HttpContext.Current.Response.BinaryWrite(ms.ToArray()); //將一個(gè)二進(jìn)制字符串寫(xiě)入HTTP輸出流
   }
   finally
   {
    //釋放占用資源
    graphics.Dispose();
    myImage.Dispose();
   }
  }
 }
}


然后使用SecurityCode.ashx文件調(diào)用上面類的方法實(shí)現(xiàn)

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;

namespace SecurityCodePic
{
 /// summary>
 /// SecurityCode1 的摘要說(shuō)明
 /// /summary>
 public class SecurityCode1 : IHttpHandler
 {

  public void ProcessRequest(HttpContext context)
  {
   DrawingSecurityCode sc = new DrawingSecurityCode();
   string SecurityCode = sc.GetSecurityCode(6);
  }

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


最后就是ASP.NET頁(yè)面圖片路徑的引用了

%@ Page Language="C#" AutoEventWireup="true" CodeBehind="SecurityCode_Test.aspx.cs" Inherits="SecurityCodePic.SecurityCode_Test" %>

!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

html xmlns="http://www.w3.org/1999/xhtml">
head runat="server">
 title>驗(yàn)證碼的實(shí)現(xiàn)/title>
 style type="text/css">
 #VCodeImg { cursor: pointer;}
 /style>
/head>
body>
 form id="form1" runat="server">
 div>
 img id="VCodeImg" src="SecurityCode.ashx" alt="驗(yàn)證碼" onclick="javascript:RefreshCode();" />
 /div>
 /form>
 script type="text/javascript">
  function RefreshCode() {
   var random = Math.random();
   var img = document.getElementById("VCodeImg");
   img.src = "SecurityCode.ashx?" + random; //加上無(wú)意義的隨機(jī)參數(shù),瀏覽器才會(huì)認(rèn)為是新地址,就會(huì)重新讀取數(shù)據(jù)
  }
 /script>
/body>
/html>

以上就是本文的全部,對(duì)了,還有源碼下載分享給大家,歡迎大家下載。

源碼分享:ASP.NET驗(yàn)證碼實(shí)現(xiàn)

您可能感興趣的文章:
  • 一個(gè)簡(jiǎn)單的ASP.NET驗(yàn)證碼
  • asp.net mvc驗(yàn)證碼類使用
  • asp.net驗(yàn)證碼的簡(jiǎn)單制作
  • 12306動(dòng)態(tài)驗(yàn)證碼啟發(fā)之ASP.NET實(shí)現(xiàn)動(dòng)態(tài)GIF驗(yàn)證碼(附源碼)
  • ASP.NET驗(yàn)證碼(3種)
  • asp.net 驗(yàn)證碼生成和刷新及驗(yàn)證
  • ASP.net 驗(yàn)證碼實(shí)現(xiàn)代碼(C#)
  • asp.net(C#) 生成隨機(jī)驗(yàn)證碼的代碼
  • Asp.net(C#)實(shí)現(xiàn)驗(yàn)證碼功能代碼
  • ASP.NET ashx實(shí)現(xiàn)無(wú)刷新頁(yè)面生成驗(yàn)證碼

標(biāo)簽:衢州 洛陽(yáng) 崇左 汕尾 贛州 南寧 青海

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《ASP.NET驗(yàn)證碼實(shí)現(xiàn)(附源碼)》,本文關(guān)鍵詞  ASP.NET,驗(yàn)證,碼,實(shí)現(xiàn),附,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問(wèn)題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無(wú)關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《ASP.NET驗(yàn)證碼實(shí)現(xiàn)(附源碼)》相關(guān)的同類信息!
  • 本頁(yè)收集關(guān)于ASP.NET驗(yàn)證碼實(shí)現(xiàn)(附源碼)的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av
    777久久久精品| 亚洲影视在线播放| 不卡视频在线看| 欧美成人r级一区二区三区| 日韩免费视频一区二区| 欧美日韩国产色站一区二区三区| 欧美一区二区视频在线观看| 国产精品一区2区| 亚洲成人av中文| 综合在线观看色| 91老司机福利 在线| 视频在线观看国产精品| 亚洲国产精品国自产拍av| 国产成人99久久亚洲综合精品| 欧美日韩在线直播| 欧美性色黄大片| 91精品国产综合久久精品图片| 欧美视频在线观看一区| 国产精品视频一二三区| 日韩视频国产视频| 日韩电影免费一区| 国产亚洲一区二区三区四区 | 久久在线观看免费| 精品毛片乱码1区2区3区| 91在线视频在线| 国模无码大尺度一区二区三区 | 视频一区二区三区中文字幕| 久久久久久久久久久久久夜| 蜜臀av一级做a爰片久久| 国产精品区一区二区三区| 欧美日韩中文国产| 在线亚洲欧美专区二区| 国产成人av一区| 国产成人综合自拍| 国产精品亚洲成人| 亚洲欧美日韩国产另类专区| 中文字幕亚洲在| 亚洲成人午夜电影| 久久99精品一区二区三区三区| 久久se精品一区二区| 国产一区91精品张津瑜| 国产91精品一区二区麻豆亚洲| 大桥未久av一区二区三区中文| 欧美不卡一区二区| 色综合咪咪久久| 91精品国产综合久久小美女| 日本高清免费不卡视频| 99久久er热在这里只有精品66| 成人综合在线视频| 91丨porny丨蝌蚪视频| 日本久久精品电影| 欧美日韩在线播| 精品少妇一区二区三区日产乱码 | 中文字幕在线观看不卡视频| 亚洲成人免费影院| 奇米综合一区二区三区精品视频 | 成人免费视频一区二区| 懂色av一区二区三区免费看| av男人天堂一区| 色av成人天堂桃色av| 欧美亚洲另类激情小说| 久久久影院官网| 综合亚洲深深色噜噜狠狠网站| 亚洲成人激情社区| 国产91色综合久久免费分享| 欧美猛男超大videosgay| 欧美一级高清大全免费观看| 国产精品久久久久久久蜜臀| 久久精品国产99国产| 色婷婷激情久久| 精品视频1区2区| 中文字幕中文乱码欧美一区二区| 日本欧美一区二区| 在线观看欧美日本| 亚洲精品一区二区三区99| 亚洲福利视频三区| 成人国产电影网| 26uuu国产一区二区三区| 日韩高清不卡一区| 欧美日韩国产综合草草| 中文字幕日本不卡| 国产一区二区三区日韩| 欧美一区国产二区| 午夜天堂影视香蕉久久| 一本色道久久综合亚洲91| 久久久久国产精品麻豆ai换脸| 日本亚洲最大的色成网站www| 国产不卡视频在线观看| 91精品午夜视频| 一区二区三区资源| 成人一区二区三区视频在线观看 | 亚洲欧美日韩一区二区三区在线观看 | 久久综合色播五月| 亚洲一区在线观看免费 | 99久久精品免费看国产 | 欧美日本在线一区| 精品国产免费一区二区三区四区 | 欧美一区二区性放荡片| 一区二区三区中文免费| 不卡欧美aaaaa| 欧美国产成人精品| 国产成人精品www牛牛影视| 国产欧美日本一区视频| 国产成人在线观看| 日韩欧美国产精品一区| 亚洲一区二区三区四区五区黄| 国产成人午夜高潮毛片| 亚洲国产精品二十页| 精品一区二区三区久久久| 久久久不卡影院| 成人听书哪个软件好| 日韩美女视频一区二区| 国产精品资源在线| 国产精品美女久久久久久久网站| 国产精品自拍毛片| 中文字幕 久热精品 视频在线| 成人av免费在线| 亚洲综合视频在线观看| 欧美一区二区视频观看视频| 久久精品国产精品亚洲红杏| 国产精品美女久久久久aⅴ| 国产成人精品一区二区三区网站观看| 久久久久久久久99精品| eeuss国产一区二区三区| 欧美精品一区二区三区视频| 不卡的av电影| 日韩成人午夜精品| 国产精品色噜噜| 69久久夜色精品国产69蝌蚪网| 国产一区二区免费在线| 最近日韩中文字幕| 欧美日本精品一区二区三区| 六月丁香婷婷色狠狠久久| 久久综合九色综合久久久精品综合| 成人午夜又粗又硬又大| 国产亚洲成年网址在线观看| 99国产精品99久久久久久| 午夜av一区二区| 国产精品国产三级国产普通话蜜臀 | 日韩一二在线观看| 国产精品麻豆一区二区| 国产三级精品三级在线专区| 豆国产96在线|亚洲| 日韩精品免费视频人成| 中文字幕免费一区| 91精品国产综合久久久久久久 | 在线精品视频小说1| 日韩黄色小视频| 亚洲精品中文字幕乱码三区| 欧美v日韩v国产v| av一二三不卡影片| 久久99精品久久久| 最新热久久免费视频| 久久综合国产精品| 91精品国产欧美日韩| 懂色av一区二区夜夜嗨| 精品在线视频一区| 久久久久国产精品厨房| 亚洲免费av高清| 国产欧美一区在线| 555www色欧美视频| 精品中文字幕一区二区小辣椒| 中文在线一区二区| 精品国产乱码久久久久久蜜臀| 不卡在线观看av| 首页国产丝袜综合| 欧美精品 国产精品| 欧美天堂亚洲电影院在线播放| 成人一区二区三区视频 | 91亚洲男人天堂| 激情另类小说区图片区视频区| 亚洲欧洲日产国码二区| 久久一夜天堂av一区二区三区| 3d成人h动漫网站入口| 粉嫩一区二区三区在线看| 三级欧美在线一区| 亚洲男人的天堂一区二区| 亚洲同性同志一二三专区| 久久久久久久综合狠狠综合| 在线播放亚洲一区| 欧美丝袜自拍制服另类| 国产精品一区二区久久不卡| 国产伦精一区二区三区| 免费在线视频一区| 亚洲成人7777| 亚洲女厕所小便bbb| 欧美体内she精视频| 99国产精品99久久久久久| 亚洲欧美日韩国产成人精品影院| 激情文学综合插| 亚洲色图欧洲色图婷婷| 成人永久aaa| 捆绑调教一区二区三区| 亚洲一区二区三区中文字幕 | 国产一区二区三区高清播放| 555www色欧美视频| 国产成人精品免费网站| 一区二区视频在线| 国产在线播放一区三区四| 久久成人久久爱|