验证码(一)
需要驗證碼的地方還真不少,這主要是為了確保用戶信息的安全。
這里我做了一個純字母的驗證碼。
Random r=new Random ();string all = "";private void btnCreatAuthCode_Click(object sender, EventArgs e){GetAuthCodes();}private void GetAuthCodes(){//定義一個整數用來存儲產生的隨機數的個數int count = r.Next(4, 6);//準備一張畫紙Image img = new Bitmap(this.lblContent.Width, this.lblContent.Height);//準備一個畫板,并且將準備好的畫紙貼在畫板上Graphics g = Graphics.FromImage(img);//利用for循環來控制驗證碼的個數for (int i = 0; i < count; i++){//以ASICLL碼的形式隨機生成小寫字母string single = ((char)r.Next(97, 123)).ToString();//在貼好畫紙的畫板上畫字符串(驗證碼)//注意這個時候生成驗證碼有多個,每個驗證碼的位置不能重復g.DrawString(single, new Font("宋體", r.Next(20, 50)),new LinearGradientBrush(new Point(0, this.lblContent.Width - 50),new Point(0, this.lblContent.Height / 2),Color.FromArgb(r.Next(0, 256), r.Next(0, 256), r.Next(0, 256)),Color.FromArgb(r.Next(0, 256), r.Next(0, 256), r.Next(0, 256))),this.lblContent.Width * i / count,//確保驗證碼的位置隨機不重復r.Next(0, this.lblContent.Height / 2));//將單個生成的驗證碼拼接起來all += single;//在驗證碼上加上線條,注意線條的粗細,如果不寫就默認為0,此時會看不到線條g.DrawLine(new Pen(Color.FromArgb(r.Next(0, 256), r.Next(0, 256), r.Next(0, 256)),1), new Point(r.Next(0,this.lblContent.Width), r.Next(0,this.lblContent.Height/2)),new Point(r.Next(0, this.lblContent.Width), r.Next(0, this.lblContent.Height / 2)));}//將畫好東西的畫紙顯示出來this.lblContent.Image = img;//釋放資源g.Dispose();}private void linkLabel_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e){GetAuthCodes();}/// <summary>/// 校驗按鈕的功能/// </summary>/// <param name="sender"></param>/// <param name="e"></param>private void btnCheck_Click(object sender, EventArgs e){//判斷用戶寫入的值和獲取的驗證碼是否相同,如果相同就提示用戶相同。//注意同時要將顯示驗證碼的標簽和用戶輸入的文本框清空,否則可能會造成空間不足if (this.txtCheckCode.Text==all){MessageBox.Show("驗證碼正確","提示信息",MessageBoxButtons.OK,MessageBoxIcon.Information);all = "";this.txtCheckCode.Clear();}if (this.txtCheckCode.Text!=all){MessageBox.Show("驗證碼錯誤", "提示信息", MessageBoxButtons.OK, MessageBoxIcon.Information);all = "";this.txtCheckCode.Clear();}}}表現出來就是:
仍然還存在著Bug需要進一步完善!
Ajax的姑娘,加油!
轉載于:https://blog.51cto.com/broncho/1321756
總結
- 上一篇: 梦到自己女儿死了是什么征兆
- 下一篇: 梦到被蛇咬到后背是什么预兆