如何在ASP.NET中實現驗證碼?

來源:互聯網
上載者:User
                                                   
    在一些項目中,需要在使用者註冊或者登入時提示輸入驗證碼,那麼如何在ASP.NET中實現驗證碼的功能呢?
    1.知識點介紹
    驗證碼其實是隨機產生的一些數字,在System命名空間下提供的Random類可以用來產生隨機性的非負數字.
    在ASP.NET中的System.Drawing命名空間中,提供了Bitmap,Graphics類,其中Bitmap類封裝了GDI+位元影像,繼承自Image類,用於處理由像素資料定義的圖象.Graphics類封裝了GDI和繪圖面,也就是相當於畫板.下面就使用Random,Bitmap和Graphics類把產生的隨即數繪製到建立的位元影像中.並用Image控制項顯示建立的位元影像.
    2.樣本
    建立"WebForm1.aspx"頁面,在該頁面中添加一個Image控制項,並設定其ImageUrl屬性為產生的位元影像所要存放的路徑.
    (1)WebForm1.aspx.cs代碼:private void Page_Load(object sender, System.EventArgs e)
        {    
            //建立位元影像對象
            Bitmap newBitmap=new Bitmap(36,16,System.Drawing.Imaging.PixelFormat.Format32bppArgb);
            //根據上面建立的位元影像對象建立繪圖層
            Graphics g=Graphics.FromImage(newBitmap);
            //以指定的顏色填寵矩形區
            g.FillRectangle(new SolidBrush(Color.White),new Rectangle(0,0,36,16));
            //建立字型對象
            Font textFont=new Font("Times new Roman",10);
            //建立RectangleF結構指定一個地區
            RectangleF rectangle=new RectangleF(0,0,36,16);
            //建立隨機數對象
            Random rd=new Random();
            //取得隨機數
            int valationNo=1000+rd.Next(8999);
            //使用指定的顏色填充上面的RectangleF結構指定的矩形地區
            g.FillRectangle(new SolidBrush(Color.BurlyWood),rectangle);
            //在上面填充的矩形地區中填充上面產生的隨機數
            g.DrawString(valationNo.ToString(),textFont,new SolidBrush(Color.Blue),rectangle);
            //把建立的位元影像儲存到指定的路徑
            newBitmap.Save(Server.MapPath("img")+"\\RandomImg.gif",System.Drawing.Imaging.ImageFormat.Gif);
        }

    (2)代碼說明
    首先建立Bitmap和Graphics對象,然後通過Font和RectangleF對象把Random對象產生的隨機數繪製到位元影像上,最後把建立的位元影像儲存到指定的目錄下.
    注:首先運行程式,把img目錄下產生的RandomImg.gif圖片包括在工程中,然後設定頁面Image的ImageUrl屬性=RandomImg.gif.
   
    

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.