国产片侵犯亲女视频播放_亚洲精品二区_在线免费国产视频_欧美精品一区二区三区在线_少妇久久久_在线观看av不卡

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務器之家 - 編程語言 - ASP.NET教程 - asp.net驗證碼圖片生成示例

asp.net驗證碼圖片生成示例

2019-11-27 14:00ASP.NET技術網 ASP.NET教程

網站驗證碼是一種很常用的技術。下面我介紹下技術上是如何實現的

驗證碼是一張圖片。我們需要在前臺代碼中寫一段<img>,src指向一張頁面(ValidateImage.aspx)。

 

復制代碼代碼如下:


<script language="javascript">

 

        function changeImg() {
            $("#imgCheckNo").attr("src", "ValidateImage.aspx?r=" + getRandom(999));
        }
        function getRandom(n) { return Math.floor(Math.random() * n + 1) }
</script>

<div>
<img id="imgCheckNo" src="ValidateImage.aspx" style="border-color: #000000; border-width: 1px;border-style: Solid">
 <span onclick="changeImg();">看不清?換一張</span>
 </div>
<div>
   <div class="labelCss">驗證碼:</div>
<div>
<asp:TextBox ID="tbxCheckNo" runat="server" CssClass="tbxCss"></asp:TextBox>
</div>
<div>
<asp:Button ID="btnSubmit" runat="server" Text="立即注冊" OnClick="btnSubmit_Click" />
</div>

 

ValidateImage.aspx 用來生產驗證碼圖片,并將驗證碼的碼值保存到cookie中。
代碼如下:

 

復制代碼代碼如下:


public partial class ValidateImage : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            this.CreateCheckCodeImage(RndNum());
        }

 

        /// <summary>生成驗證碼
        /// </summary>
        /// <returns></returns>
        private string RndNum()
        {
            int number;
            char code;
            string checkCode = String.Empty;

            System.Random random = new Random();

            for (int i = 0; i < 4; 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("yzmcode", checkCode));
            return checkCode;
        }

        /// <summary>向頁面生成驗證碼Gif圖片
        /// </summary>
        /// <param name="checkCode"></param>
        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();
            }
        }

    }

 

最后就是后臺事件,判斷當前驗證碼是否正確。
代碼如下:

 

復制代碼代碼如下:

#region 頁面控件事件
        protected void btnSubmit_Click(object sender, EventArgs e)
        {
            if (String.Compare(Request.Cookies["yzmcode"].Value, tbxCheckNo.Text, true) != 0)
            {
                Response.Write("<script>alert('驗證碼錯誤!')</script>");
            }
            else
            {
               // Response.Write("<script>alert('驗證嗎正確!!!')</script>");
            }
        }
  #endregion

延伸 · 閱讀

精彩推薦
Weibo Article 1 Weibo Article 2 Weibo Article 3 Weibo Article 4 Weibo Article 5 Weibo Article 6 Weibo Article 7 Weibo Article 8 Weibo Article 9 Weibo Article 10 Weibo Article 11 Weibo Article 12 Weibo Article 13 Weibo Article 14 Weibo Article 15 Weibo Article 16 Weibo Article 17 Weibo Article 18 Weibo Article 19 Weibo Article 20 Weibo Article 21 Weibo Article 22 Weibo Article 23 Weibo Article 24 Weibo Article 25 Weibo Article 26 Weibo Article 27 Weibo Article 28 Weibo Article 29 Weibo Article 30 Weibo Article 31 Weibo Article 32 Weibo Article 33 Weibo Article 34 Weibo Article 35 Weibo Article 36 Weibo Article 37 Weibo Article 38 Weibo Article 39 Weibo Article 40
主站蜘蛛池模板: 成年人毛片在线观看 | 欧美精品入口蜜桃 | 亚洲精品久久久久久久久久久 | 毛片激情永久免费 | 在线免费观看av电影 | 久久久久久久久久久高潮 | 日韩欧美精品在线 | 欧美成人一区二免费视频软件 | 久久久久亚洲精品 | 免费一级网站 | 国产日韩一区二区 | 一区二区视频 | 国产精品99久久久久久www | 99精品一区二区三区 | 国产精品久久久久久久久免费桃花 | 亚洲一区欧美一区 | 二区视频 | 欧美日韩精品在线 | 五月婷婷在线观看视频 | 激情久久久 | 玖玖操 | 黄色免费在线观看 | 日韩欧一区二区三区 | 亚洲国产成人av好男人在线观看 | 中文字幕高清视频 | 亚洲精品区 | 精品动漫一区 | 韩日中文字幕 | 日日夜夜一区二区 | 亚洲精品专区 | 99精品一区二区三区 | 国产精品美女久久久久久久久久久 | 成人av一区二区三区 | 国产资源大全 | 成人免费一区二区三区视频网站 | 国产精品国产三级国产aⅴ 亚洲精品免费在线观看 | 一区二区三区四区在线 | 97成人在线免费视频 | 欧美激情精品久久久久久变态 | 久草视频免费看 | 操网|