日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 人文社科 > 生活经验 >内容正文

生活经验

ASP.net 验证码(C#)

發布時間:2023/11/27 生活经验 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 ASP.net 验证码(C#) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
ASP.net 驗證碼(C#)

/* Copyright all(c) 2005 ZhongFeng, http://blog.csdn.net/SW515 */
?public class ValidateCode : System.Web.UI.Page
?{
??private void Page_Load(object sender, System.EventArgs e)
??{
???this.CreateCheckCodeImage(GenerateCheckCode());
??}

??#region Web 窗體設計器生成的代碼
??override protected void OnInit(EventArgs e)
??{
???//
???// CODEGEN: 該調用是 ASP.NET Web 窗體設計器所必需的。
???//

???InitializeComponent();
???base.OnInit(e);
??}
??
??/// <summary>
??/// 設計器支持所需的方法 - 不要使用代碼編輯器修改
??/// 此方法的內容。
??/// </summary>

??private void InitializeComponent()
??{???
???this.Load += new System.EventHandler(this.Page_Load);
??}
??#endregion

??private string GenerateCheckCode()
??{
???int number;
???char code;
???string checkCode = String.Empty;

???System.Random random = new Random();

???for(int i=0; i<5; i++)
???{
????number = random.Next();

????if(number % 2 == 0)
?????code = (char)('0' + (char)(number % 10));
????else
?????code = (char)('A' + (char)(number % 26));

????checkCode += code.ToString();
???}

???Response.Cookies.Add(new HttpCookie("CheckCode", checkCode));

???return checkCode;
??}

??private void CreateCheckCodeImage(string checkCode)
??{
???if(checkCode == null || checkCode.Trim() == String.Empty)
????return;

???System.Drawing.Bitmap image = new System.Drawing.Bitmap((int)Math.Ceiling((checkCode.Length * 12.5)), 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, y1, x2, 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(checkCode, 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();
???}
??}
?}


?

  假如以上驗證碼生成器頁面名為:CheckCode.aspx,那么在登錄頁面中使用“<IMG>” 這個 HTML 元素來顯示生成的驗證碼圖片:<IMG src="CheckCode.aspx">
  在登錄頁面的登錄按鈕的處理事件中使用以下代碼判斷驗證碼:

??private void btnLogin_Click(object sender, System.Web.UI.ImageClickEventArgs e)
??{
???if(Request.Cookies["CheckCode"] == null)
???{
????lblMessage.Text = "您的瀏覽器設置已被禁用 Cookies,您必須設置瀏覽器允許使用 Cookies 選項后才能使用本系統。";
????lblMessage.Visible = true;
????return;
???}

???if(String.Compare(Request.Cookies["CheckCode"].Value, txtCheckCode.Text, true) != 0)
???{
????lblMessage.Text = "驗證碼錯誤,請輸入正確的驗證碼。";
????lblMessage.Visible = true;
????return;
???}

????????/***** ?? *****/

??}





效果圖:


?

  你可以使用或部分引用該段代碼,不過必須保留以上版權注釋部分內容,并注釋代碼來源,否則將保留追究侵權的權利!

?

總結

以上是生活随笔為你收集整理的ASP.net 验证码(C#)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。