圖形碼驗證

來源:互聯網
上載者:User

目前基本上所有的網站登陸的時候都有的圖形的驗證,添入使用者名稱,密碼,和圖片裡的字母才能登陸,我以前一直想做一個,由於種種原因一直拖到今天下午!
其實也不是很複雜就是用GDI+產生一個隨機的字串的圖片,然後將它顯示出來,說太空泛了,下面是產生隨即數字圖片的代碼
using System;
using System.Collections;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Drawing.Drawing2D;
using System.Drawing.Imaging;
using System.Web;
using System.Web.SessionState;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.HtmlControls;

namespace webimage
{
 /// <summary>
 /// WebForm1 的摘要說明。
 /// </summary>
 public class WebForm1 : System.Web.UI.Page
 {

  private void Page_Load(object sender, System.EventArgs e)
  {
   // 在此處放置使用者代碼以初始化頁面
   if(!Page.IsPostBack)
   {
    showimg();
   }
  }
  private void showimg()
  {
   this.randomnumber();
   this.drawimage(Session["valdata"].ToString());
  }

  private void randomnumber()
  {
   Random rd = new Random();
   string result = "";
   for(int i = 0 ;i<6;i++)
   {
        result+=rd.Next(10).ToString();
   }
   Session["valdata"]=result;
  }

  private void drawimage(string mess)
  {
    //建立一個Bitmap對象
   Bitmap bit = new Bitmap(100,30);
   //有Bitmap建立一個Graphics對象
   Graphics g = Graphics.FromImage(bit);
   Font ft = new Font("Impact",15);
   //填寫內容
   g.DrawString(mess,ft,new SolidBrush(Color.Yellow),new Point(15,2));
   //劃一個方框
   g.DrawLine(Pens.WhiteSmoke,2,2,98,2);//-
   g.DrawLine(Pens.White,2,2,2,28);//|
   g.DrawLine(Pens.WhiteSmoke,98,2,98,28);
   g.DrawLine(Pens.White,2,28,98,28);
   //輸出並釋放
   bit.Save(Response.OutputStream,ImageFormat.Gif);
   bit.Dispose();
   g.Dispose();
   Response.End();

  }
  #region Web Form設計器產生的程式碼
  override protected void OnInit(EventArgs e)
  {
   //
   // CODEGEN: 該調用是 ASP.NET Web Form設計器所必需的。
   //
   InitializeComponent();
   base.OnInit(e);
  }
  
  /// <summary>
  /// 設計器支援所需的方法 - 不要使用代碼編輯器修改
  /// 此方法的內容。
  /// </summary>
  private void InitializeComponent()
  {
   this.Load += new System.EventHandler(this.Page_Load);
  }
  #endregion
 }
}
這就產生了一張隨機產生六位元字的圖象,這我看看資料一會就做出來了,下面的東西卻困惑了我半天
我在該頁面上添加了個Button控制項,想著點擊一次從新產生一張圖片,可是網頁開啟後只有隨機圖片卻沒有按鈕,我還以為我放錯頁面了,回來一看,沒錯,為什麼按鈕不能正確顯示呢?我沒有找到相關的東西,但是我認為是這樣的,圖片輸出的時候用bit.Save(Response.OutputStream,ImageFormat.Gif); 是記憶體流把按鈕控制項的資訊給衝掉了吧.不去想了,這樣我想在另外一頁引用它,我看到網上有篇文章使用Image控制項然後把ImageUrl指向那一頁就可以了!我照著做的,沒有問題!

下面的串連是我上傳的代碼(VS03)
http://files.cnblogs.com/interboy/webimage.rar

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.