• 验证码


    一、生成验证码
    html代码:

    <script type="text/javascript">
        //点击图片更新验证码
        function refreshYZM() {
            //第一种方法,设置src值等于当前时间
            //var imgYZM = document.getElementById("imgYZM");
            //imgYZM.src = "YanZhengMa.ashx?id=" + new Date();
            //第二方法,设置src值每次点击时加1
            $("#imgYZM").attr("src", $("#imgYZM").attr("src") + 1);
        }
    </script>
    
    <form action="Cookies.ashx" method="post">
        <table border="1" cellpadding="0" cellspacing="0">
            <tr><td>用户名</td><td><input type="text" name="name" value="@name" /></td></tr>
            <tr><td>密码</td><td><input type="password" name="pwd" value="@pwd" /></td></tr>
            <tr>
                <td><img src="YanZhengMa.ashx?id=1" id="imgYZM" onclick="refreshYZM()" /></td>
                <td><input type="text" name="yzm" /></td>
            </tr>
            <tr><td><input type="submit" name="btnOK" value="登录" /></td><td>@msg</td></tr>
        </table>
    </form>

    YanZhengMa一般处理程序代码:(可以将验证码保存在cookie或session中)

    public void ProcessRequest(HttpContext context)
    {
        context.Response.ContentType = "image/jpeg";
        HttpCookie yzm = new HttpCookie("yzm");//创建cookie名称为yzm
        //生成4位随机数
        Random rand = new Random();
        int num = rand.Next(1000, 10000);
        string code = num.ToString();
        yzm.Value = code;//设置浏览器的cookie值为生成的4位随机数
        context.Response.SetCookie(yzm);//将cookie值写入到浏览器
        context.Session["yzm11"] = code;//创建session的值
        //将验证码写入到输出流并显示在浏览器中
        using (Bitmap bmp = new Bitmap(60, 25))
        {
            using (Graphics g = Graphics.FromImage(bmp))
            using (Font font = new Font(FontFamily.GenericSerif, 15))
            {
                g.DrawString(code, font, Brushes.Red, new PointF(0, 0));
            }
            bmp.Save(context.Response.OutputStream, ImageFormat.Jpeg);
        }
    }

    获取验证码:(登录时可判断用户输入的验证码与保存在浏览器的验证码相对比)
    HttpCookie yzmLogin = context.Request.Cookies["yzm"];//保存在浏览器的验证码
    string yzm = yzmLogin.value;

  • 相关阅读:
    TERSUS笔记员工信息409-修改
    TERSUS笔记员工信息408-查询
    TERSUS笔记员工信息407-07GO
    TERSUS笔记员工信息406-03首页
    TERSUS笔记员工信息405-04上一页
    TERSUS笔记员工信息404-05下一页
    TERSUS笔记员工信息403-06末页
    TERSUS笔记员工信息402-08每页条数逻辑
    layui 更新echarts版本后地图报错
    常用的CMS系统有哪些
  • 原文地址:https://www.cnblogs.com/genesis/p/4679651.html
Copyright © 2020-2023  润新知