茄子在线看片免费人成视频,午夜福利精品a在线观看,国产高清自产拍在线观看,久久综合久久狠狠综合

    <s id="ddbnn"></s>
  • <sub id="ddbnn"><ol id="ddbnn"></ol></sub>

  • <legend id="ddbnn"></legend><s id="ddbnn"></s>

    ASP.NET生成圖形驗證碼的方法詳解
    來源:易賢網(wǎng) 閱讀:1262 次 日期:2016-08-08 15:01:50
    溫馨提示:易賢網(wǎng)小編為您整理了“ASP.NET生成圖形驗證碼的方法詳解”,方便廣大網(wǎng)友查閱!

    本文實例講述了ASP.NET生成圖形驗證碼的方法。分享給大家供大家參考,具體如下:

    通常生成一個圖形驗證碼主要 有3個步驟:

    (1)隨機產(chǎn)生一個長度為N的隨機字符串,N的值可由開發(fā)可由開發(fā)人員自行設置。該字符串可以包含數(shù)字、字母等。

    (2)將隨機生成的字符串創(chuàng)建成圖片,并顯示。

    (3)保存驗證碼。

    新建一個頁面為default.aspx,  放置一個TextBox控件和一個Image控件,TextBox控件用于輸入生成的字符串,Image控件用于顯示字符串,它的圖片就為生成的圖形驗證碼imageUrl=“/default.aspx”;

    default.aspx頁面的源代碼為:

    <form id="form1" runat="server">

      <div>

        <asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>

        <asp:Image ID="Image1" imageUrl=“/default.aspx” runat="server" />

      </div>

    </form>

    圖形驗證碼的代碼為:

    using System;

    using System.Configuration;

    using System.Data;

    using System.Linq;

    using System.Web;

    using System.Web.Security;

    using System.Web.UI;

    using System.Web.UI.HtmlControls;

    using System.Web.UI.WebControls;

    using System.Web.UI.WebControls.WebParts;

    using System.Xml.Linq;

    using System.Drawing;

    public partial class _Default : System.Web.UI.Page 

    {

      protected void Page_Load(object sender, EventArgs e)

      {

        if (!IsPostBack)

        {

          string validateNum = CreateRandomNum(4);

          CreateImage(validateNum);

          Session["ValidateNum"] = validateNum;

        }

      }

      //生產(chǎn)隨機數(shù)

      private string CreateRandomNum(int NumCount)

      {

        string allChar = "0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F,G,H,I,J,K,O,P,Q,R,S,T,U,W,X,Y,Z,a,b,c,d,e,f,g,h,i,j,k,m,n,o,p,q,s,t,u,w,x,y,z";

        string[] allCharArray = allChar.Split(',');//拆分成數(shù)組

        string randomNum = "";

        int temp = -1;               //記錄上次隨機數(shù)的數(shù)值,盡量避免產(chǎn)生幾個相同的隨機數(shù)

        Random rand = new Random();

        for (int i = 0; i < NumCount; i++)

        {

          if (temp != -1)

          {

            rand = new Random(i*temp*((int)DateTime.Now.Ticks));

          }

          int t = rand.Next(35);

          if (temp == t)

          {

            return CreateRandomNum(NumCount);

          }

          temp = t;

          randomNum += allCharArray[t];

        }

        return randomNum;

      }

      //生產(chǎn)圖片

      private void CreateImage(string validateNum)

      {

        if (validateNum == null || validateNum.Trim() == string.Empty)

          return;

        //生成BitMap圖像

        System.Drawing.Bitmap image = new System.Drawing.Bitmap(validateNum.Length*12+12,22);

        Graphics g = Graphics.FromImage(image);

        try

        { 

          //生成隨機生成器

          Random random = new Random();

          //清空圖片背景

          g.Clear(Color.White);

          //畫圖片的背景噪音線

          for (int i = 0; i < 25; i++)

          {

            int x1 = random.Next(image.Width);

            int x2 = random.Next(image.Width);

            int y1 = random.Next(image.Height);

            int y2 = random.Next(image.Height);

            g.DrawLine(new Pen(Color.Silver),x1,x2,y1,y2);

          }

          Font font = new System.Drawing.Font("Arial",12,(System.Drawing.FontStyle.Bold|System.Drawing.FontStyle.Italic));

          System.Drawing.Drawing2D.LinearGradientBrush brush=new System.Drawing.Drawing2D.LinearGradientBrush(new Rectangle(0,0,image.Width,image.Height),Color.Blue,Color.DarkRed,1.2f,true);

          g.DrawString(validateNum,font,brush ,2,2);

          //畫圖片的前景噪音點

          for( int i=0;i<100;i++)

          {

            int x=random.Next(image.Width);

            int y=random.Next(image.Height);

            image.SetPixel(x,y,Color.FromArgb(random.Next()));

          }

          //畫圖片的邊框線

          g.DrawRectangle(new Pen(Color.Silver),0,0,image.Width-1,image.Height-1);

          System.IO.MemoryStream ms=new System.IO.MemoryStream();

          //將圖像保存到指定流

          image.Save(ms,System.Drawing.Imaging.ImageFormat.Gif);

          Response.ClearContent();

          Response.ContentType="image/Gif";

          Response.BinaryWrite(ms.ToArray());

        }

        finally

        {

          g.Dispose();

          image.Dispose();

        }

      }

    }

    希望本文所述對大家asp.net程序設計有所幫助。

    更多信息請查看網(wǎng)絡編程
    易賢網(wǎng)手機網(wǎng)站地址:ASP.NET生成圖形驗證碼的方法詳解

    2026上岸·考公考編培訓報班

    • 報班類型
    • 姓名
    • 手機號
    • 驗證碼
    關(guān)于我們 | 聯(lián)系我們 | 人才招聘 | 網(wǎng)站聲明 | 網(wǎng)站幫助 | 非正式的簡要咨詢 | 簡要咨詢須知 | 新媒體/短視頻平臺 | 手機站點 | 投訴建議
    工業(yè)和信息化部備案號:滇ICP備2023014141號-1 云南省教育廳備案號:云教ICP備0901021 滇公網(wǎng)安備53010202001879號 人力資源服務許可證:(云)人服證字(2023)第0102001523號
    聯(lián)系電話:0871-65099533/13759567129 獲取招聘考試信息及咨詢關(guān)注公眾號:hfpxwx
    咨詢QQ:1093837350(9:00—18:00)版權(quán)所有:易賢網(wǎng)