• 验证码


    页面

    using System;
    using System.Configuration;
    using System.Data;
    using System.Linq;
    using System.Web;
    using System.Web.Security;
    using System.Web.UI;
    using System.Web.UI.HtmlControls;
    using System.Web.UI.WebControls;
    using System.Web.UI.WebControls.WebParts;
    using System.Xml.Linq;
    using System.Drawing;  
    
    namespace AMPlatForm.Union.Online
    {
        public partial class ValiCode : System.Web.UI.Page
        {
            protected void Page_Load(object sender, EventArgs e)
            {
                DoImg(DoCode(5));
            }
            /// <summary>
            /// 生成验证码表达式
            /// </summary>
            /// <param name="num">验证码的长度</param>
            /// <returns>验证码表达式</returns>
            private string DoCode(int num)
            {
                //要从这个数组中随机取字符来生成验证码
                string[] Codesource ={"0","1","2","3","4","5","6","7","8","9",
                                 "a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z"};
                string code = "";
                Random rd = new Random();
                for (int i = 0; i < num; i++)
                {
                    code += Codesource[rd.Next(0, Codesource.Length)];
                }
                return code;
            }
            /// <summary>
            /// 生成图片
            /// </summary>
            /// <param name="code">验证码表达式</param>
            private void DoImg(string code)
            {
                Random random = new Random();
                Bitmap mypalette = new Bitmap(100, 30);
                Graphics gh = Graphics.FromImage(mypalette);
                using (gh)
                {
                    Rectangle rc = new Rectangle(0, 0, 100, 30);
                    //填充图片
                    gh.FillRectangle(new SolidBrush(Color.White), rc);
                    for (int i = 0; i < 1; i++)
                    {
                        int x1 = random.Next(mypalette.Width);
                        int x2 = random.Next(mypalette.Width);
                        int y1 = random.Next(mypalette.Height);
                        int y2 = random.Next(mypalette.Height);
                        //在图片上随机画线条
                        gh.DrawLine(new Pen(Color.Blue), x1, y1, x2, y2);
                    }
                    gh.DrawString(code, new Font("宋体", 20), new SolidBrush(Color.Black), rc);
                    for (int i = 1; i < 60; i++)
                    {
                        int x = random.Next(mypalette.Width);
                        int y = random.Next(mypalette.Height);
                        //在图片中填充随机颜色
                        mypalette.SetPixel(x, y, Color.FromArgb(random.Next()));
                    }
                    //将生成的图像保存到流中
                    mypalette.Save(Response.OutputStream, System.Drawing.Imaging.ImageFormat.Jpeg);
                    Session["ValiCode"] = code;         //主要用来验证
                }
                Response.Write(code);
            }
        }
    }

     前端局部刷新

    <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="WebForm3.aspx.cs" Inherits="Test.WebForm3" %>
    
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head runat="server">
        <title></title>
    </head>
    <body>
        <form id="form1" runat="server">
        <div>
         <fieldset>
                <legend>验证码测试</legend>请输入验证码:<asp:TextBox ID="valid" runat="server"></asp:TextBox>
                <img id="img" alt="" src="ValiCode.aspx" />  <a href="javascript:;" id="aImg">刷新验证码</a>
                <asp:Button ID="Button1" runat="server" Text="提交" onclick="Button1_Click"   />
            </fieldset>
        </div>
        </form>
        <script type="text/javascript" >
            var img = document.getElementById("img");
            var alink = document.getElementById("aImg");
            alink.onclick = function () {
                // img.setAttribute("src", "ValiCode.aspx?temp="+ (new Date().getTime().toString(36)));
                img.setAttribute("src", "ValiCode.aspx?temp=" + Math.ceil(Math.random()*1000));
            }
        </script>
    </body>
    </html>

    注意加参数

    图片自己刷新

    <body>
        <form id="form1" runat="server">
        <div>
         <fieldset>
                <legend>验证码测试</legend>请输入验证码:<asp:TextBox ID="valid" runat="server"></asp:TextBox>
                <img id="img" style="cursor:pointer;"   src="ValiCode.aspx" />  
                <asp:Button ID="Button1" runat="server" Text="提交" onclick="Button1_Click"   />
            </fieldset>
        </div>
        </form>
        <script type="text/javascript" >
            var img = document.getElementById("img");
            img.onclick = function () {
                // img.setAttribute("src", "ValiCode.aspx?temp="+ (new Date().getTime().toString(36)));
                img.setAttribute("src", "ValiCode.aspx?temp=" + Math.ceil(Math.random() * 1000));
                
            }
        </script>
    </body>
  • 相关阅读:
    CodeIgniter 2.X 于 PHP5.6 兼容错误
    解决 TextMate 2 无法安装 Emmet 插件
    Windows 10 KMS 激活方法
    Sublime Text 3 如何修改默认快捷键
    Grunt快速使用笔记
    CSS3字体发光效果
    CSS3使用盒模型实现三栏布局
    CSS3Transition添加多个过渡效果
    Javascript 判断网页横竖屏
    【iOS知识汇】OC点语法的坑
  • 原文地址:https://www.cnblogs.com/hongdada/p/3544406.html
Copyright © 2020-2023  润新知