当前位置: 首页 > news >正文

.net图片验证码生成、点击刷新及验证输入是否正确

①创建ValidateCode.aspx,在ValidateCode.aspx.cs中加入如下代码。生成验证码图片,在页面上输出,输出jpeg格式。

 protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
        {
            Bitmap b = new Bitmap(80, 30);// 图片大小
            Graphics g = Graphics.FromImage(b);// 对图片操作
            g.Clear(Color.Gray);// 填充背景色
            Font f = new Font("华文行楷", 20f); //设置字体和大小
            SolidBrush sb = new SolidBrush(Color.Wheat);//文字颜色

            String vcode = Radom(0, 9, 4);
            Session["ValidateCode"] = vcode;
            g.DrawString(vcode, f, sb, 10, 2);//图片上的文字,风格,颜色,位置

            b.Save(Response.OutputStream, System.Drawing.Imaging.ImageFormat.Jpeg);//在页面上输出,输出jpeg格式
        }
    }

    private string Radom(int minValue, int maxValue, int length)
    {
        Random validateCode = new Random();
        string r = "";
        for (int i = 0; i < length; i++)
        {
            r = r + validateCode.Next(minValue, maxValue);
        }
        return r;
    }

②在用到验证码的地方加入如下代码,οnclick="jaavscript:this.src='/ValidateCode.aspx?t=' + Math.random()"的作用:点击图片刷新。

<div style="float: left; margin-left:5px;" >
    <img src="/ValidateCode.aspx" οnclick="jaavscript:this.src='/ValidateCode.aspx?t=' + Math.random()"/>
</div>

③判断验证码是否输入正确

 if (!TxtVCode.Text.Equals( Session["ValidateCode"]))
        {
            Response.Write("<script>alert('验证码输入错误!');</script>");
        }
        else 
        。。。。//其他代码
        }

 

转载于:https://www.cnblogs.com/linhuide/p/4579215.html

相关文章:

  • 使用cnpm(淘宝npm镜像)
  • [Python] Ubuntu12.04LTS
  • 西方经济学复习
  • dede调用子栏目问题(没有子栏目时出现同级栏目)
  • IELTS...
  • php基础教程-输出Hello World
  • MeteoInfoLab脚本示例:地图投影
  • Nhibernate基础
  • 在iPhone4的微信,切换效果时背景会闪一下
  • Google研究员Ilya Sutskever:成功训练LDNN的13点建议
  • GIT 提交流程
  • 面试题15:链表中倒数第k个结点
  • 游标cursor
  • 反转链表
  • kettle菜鸟学习笔记2----第一个kettle转换的建立及执行
  • avalon2.2的VM生成过程
  • CSS 专业技巧
  • download使用浅析
  • input实现文字超出省略号功能
  • java8-模拟hadoop
  • laravel5.5 视图共享数据
  • nodejs:开发并发布一个nodejs包
  • node学习系列之简单文件上传
  • Python 基础起步 (十) 什么叫函数?
  • Redis学习笔记 - pipline(流水线、管道)
  • tensorflow学习笔记3——MNIST应用篇
  • WordPress 获取当前文章下的所有附件/获取指定ID文章的附件(图片、文件、视频)...
  • 精彩代码 vue.js
  • 理解 C# 泛型接口中的协变与逆变(抗变)
  • 区块链将重新定义世界
  • 人脸识别最新开发经验demo
  • 手写双向链表LinkedList的几个常用功能
  • 学习Vue.js的五个小例子
  • 责任链模式的两种实现
  • ​DB-Engines 11月数据库排名:PostgreSQL坐稳同期涨幅榜冠军宝座
  • #define,static,const,三种常量的区别
  • #在 README.md 中生成项目目录结构
  • (ZT) 理解系统底层的概念是多么重要(by趋势科技邹飞)
  • (附源码)spring boot球鞋文化交流论坛 毕业设计 141436
  • (附源码)计算机毕业设计SSM基于java的云顶博客系统
  • (三分钟了解debug)SLAM研究方向-Debug总结
  • (一)SpringBoot3---尚硅谷总结
  • (转)总结使用Unity 3D优化游戏运行性能的经验
  • (轉)JSON.stringify 语法实例讲解
  • ***linux下安装xampp,XAMPP目录结构(阿里云安装xampp)
  • ./indexer: error while loading shared libraries: libmysqlclient.so.18: cannot open shared object fil
  • .NET Micro Framework初体验(二)
  • .NET MVC之AOP
  • .NET框架类在ASP.NET中的使用(2) ——QA
  • @Controller和@RestController的区别?
  • @DataRedisTest测试redis从未如此丝滑
  • @font-face 用字体画图标
  • @vue/cli脚手架
  • @zabbix数据库历史与趋势数据占用优化(mysql存储查询)
  • [Android Studio] 开发Java 程序