主頁(yè) > 知識(shí)庫(kù) > ASP.NET 實(shí)現(xiàn)驗(yàn)證碼以及刷新驗(yàn)證碼的小例子

ASP.NET 實(shí)現(xiàn)驗(yàn)證碼以及刷新驗(yàn)證碼的小例子

熱門(mén)標(biāo)簽:外呼系統(tǒng)費(fèi)用一年 怎么給超市做地圖標(biāo)注入駐店 十堰正規(guī)電銷(xiāo)機(jī)器人系統(tǒng) 外呼系統(tǒng)代理品牌 巫師3為什么地圖標(biāo)注的財(cái)寶沒(méi)有 世紀(jì)佳緣地圖標(biāo)注怎么去掉 手機(jī)地圖標(biāo)注如何刪除 辦理400電話(huà)證件 寧波自動(dòng)外呼系統(tǒng)代理

實(shí)現(xiàn)代碼

復(fù)制代碼 代碼如下:

/// summary>
    /// 生成驗(yàn)證碼圖片,保存session名稱(chēng)VerificationCode
    /// /summary>
    public static void CreateVerificationCode()
    {
        int number;
        string checkCode = string.Empty;

        //隨機(jī)數(shù)種子
        Random randoms = new Random();

        for (int i = 0; i 4; i++) //校驗(yàn)碼長(zhǎng)度為4
        {
            //隨機(jī)的整數(shù)
            number = randoms.Next();

            //字符從0-9,A-Z中隨機(jī)產(chǎn)生,對(duì)應(yīng)的ASCII碼分別為
            //48-57,65-90
            number = number % 36;
            if (number 10)
            {
                number += 48;
            }
            else
            {
                number += 55;
            }
            checkCode += ((char)number).ToString();
        }

        //在session中保存校驗(yàn)碼
        System.Web.HttpContext.Current.Session["VerificationCode"] = checkCode;

        //若校驗(yàn)碼為空,則直接返回
        if (checkCode == null || checkCode.Trim() == String.Empty)
        {
            return;
        }
        //根據(jù)校驗(yàn)碼的長(zhǎng)度確定輸出圖片的長(zhǎng)度
        System.Drawing.Bitmap image = new System.Drawing.Bitmap(55, 20);//(int)Math.Ceiling(Convert.ToDouble(checkCode.Length * 15))
        //創(chuàng)建Graphics對(duì)象
        Graphics g = Graphics.FromImage(image);
        try
        {
            //生成隨機(jī)數(shù)種子
            Random random = new Random();
            //清空?qǐng)D片背景色
            g.Clear(Color.White);
            //畫(huà)圖片的背景噪音線(xiàn) 10條
            //---------------------------------------------------
            for (int i = 0; i 10; i++)
            {
                //噪音線(xiàn)起點(diǎn)坐標(biāo)(x1,y1),終點(diǎn)坐標(biāo)(x2,y2)
                int x1 = random.Next(image.Width);
                int x2 = random.Next(image.Width);
                int y1 = random.Next(image.Height);
                int y2 = random.Next(image.Height);

                //用銀色畫(huà)出噪音線(xiàn)
                g.DrawLine(new Pen(Color.Silver), x1, y1, x2, y2);
            }
            //---------------------------------------------------
            //Brush b = Brushes.Silver;
            //g.FillRectangle(b, 0, 0, image.Width, image.Height);
            //---------------------以上兩種任選其一------------------------------
            //輸出圖片中校驗(yàn)碼的字體: 12號(hào)Arial,粗斜體
            Font font = new Font("Arial", 12, (FontStyle.Bold | FontStyle.Italic));

            //線(xiàn)性漸變畫(huà)刷
            LinearGradientBrush brush = new LinearGradientBrush(new Rectangle(0, 0, image.Width, image.Height), Color.Blue, Color.Purple, 1.2f, true);
            g.DrawString(checkCode, font, brush, 2, 2);

            //畫(huà)圖片的前景噪音點(diǎn) 50個(gè)
            for (int i = 0; i 50; i++)
            {
                int x = random.Next(image.Width);
                int y = random.Next(image.Height);
                image.SetPixel(x, y, Color.FromArgb(random.Next()));
            }

            //畫(huà)圖片的邊框線(xiàn)
            g.DrawRectangle(new Pen(Color.Peru), 0, 0, image.Width - 1, image.Height - 1);

            //創(chuàng)建內(nèi)存流用于輸出圖片
            using (MemoryStream ms = new MemoryStream())
            {
                //圖片格式指定為png
                image.Save(ms, ImageFormat.Jpeg);
                //清除緩沖區(qū)流中的所有輸出
                System.Web.HttpContext.Current.Response.ClearContent();
                //輸出流的HTTP MIME類(lèi)型設(shè)置為"image/Png"
                System.Web.HttpContext.Current.Response.ContentType = "image/Jpeg";
                //輸出圖片的二進(jìn)制流
                System.Web.HttpContext.Current.Response.BinaryWrite(ms.ToArray());
            }
        }
        finally
        {
            //釋放Bitmap對(duì)象和Graphics對(duì)象
            g.Dispose();
            image.Dispose();
        }
    }

創(chuàng)建一個(gè)aspx頁(yè)面

復(fù)制代碼 代碼如下:

 %@ Page Language="C#" AutoEventWireup="true" CodeFile="AuthCode.aspx.cs" Inherits="AuthCode" %>

 %Help.CreateVerificationCode(); %>

添加HTML代碼,引用

復(fù)制代碼 代碼如下:

 div class="positionR">
     label>驗(yàn)證碼:/label>
     span class="style1"> */span>
     input type="text" class="yanZm" runat="Server" reg="^.+$" id="txtAuthCode" tip="請(qǐng)輸入驗(yàn)證碼!" />
     img class="yanZm_img" src="AuthCode.aspx" alt="" id="imgAuthCode" />
 /div>

如何實(shí)現(xiàn)刷新?

復(fù)制代碼 代碼如下:

     script type="text/javascript">
         $("#imgAuthCode").click(function () {
             $(this).attr("src", "AuthCode.aspx?code=" + (new Date()).getTime());
         });
     /script>

效果圖

實(shí)例下載

您可能感興趣的文章:
  • 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 簡(jiǎn)單驗(yàn)證碼驗(yàn)證實(shí)現(xiàn)代碼
  • ASP.NET MVC驗(yàn)證碼功能實(shí)現(xiàn)代碼
  • ASP.NET中的無(wú)刷新驗(yàn)證碼的開(kāi)發(fā)(完整代碼)
  • asp.net 圖片驗(yàn)證碼的HtmlHelper
  • asp.net ajax實(shí)現(xiàn)無(wú)刷新驗(yàn)證碼
  • ASP.NET生成驗(yàn)證碼的方法

標(biāo)簽:通遼 景德鎮(zhèn) 天門(mén) 牡丹江 山西 嘉興 泰州 巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《ASP.NET 實(shí)現(xiàn)驗(yàn)證碼以及刷新驗(yàn)證碼的小例子》,本文關(guān)鍵詞  ASP.NET,實(shí)現(xiàn),驗(yà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 實(shí)現(xiàn)驗(yàn)證碼以及刷新驗(yàn)證碼的小例子》相關(guān)的同類(lèi)信息!
  • 本頁(yè)收集關(guān)于ASP.NET 實(shí)現(xiàn)驗(yàn)證碼以及刷新驗(yàn)證碼的小例子的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章