一个简单的例子实现根据验证码判断登陆。

登陆页:

 <table><tr><td style="text-align: right; height: 40px; width: 100px;"><asp:TextBox ID="txtCheckCode" runat="server" Height="25px" Width="97px" ValidationGroup="1"></asp:TextBox></td><td style="text-align: center; height: 40px; width: 100px;"><img id="chkCode" src="CheckCode.aspx" οnclick="javascript:CheckCode();" style="cursor: pointer" /></td><td>&nbsp;<asp:RequiredFieldValidator ID="RequiredFieldValidator2" runat="server" ControlToValidate="txtCheckCode"ErrorMessage="请输入验证码!" ForeColor="Red" ValidationGroup="1"></asp:RequiredFieldValidator></td><td><asp:Button  ID="btn" Text="登陆" runat="server" οnclick="btn_Click" ValidationGroup="1" Style="height: 20px" /><asp:Label ID="zt" ForeColor="Red" runat="server"></asp:Label></td></tr></table>

登陆页js: 这里主要实现点击验证码在重新生成验证码。

 <script language="javascript" type="text/javascript" src="./Scripts/jquery-1.4.1.min.js"></script><script language="javascript" type="text/javascript">function CheckCode() {$("#chkCode").attr("src", "./CheckCode.aspx?" + Math.random());}
</script>

登陆页面后台.CS

 protected void btn_Click(object sender, EventArgs e){string checkCode =txtCheckCode.Text.Trim();string ischeck = Session["UserCCode"].ToString();if (!string.IsNullOrEmpty(checkCode)&& ischeck.Equals(checkCode)){this.zt.Text = "登陆成功!";}else{this.zt.Text = "登陆失败!";}}

CheckCode.aspx 验证码检查页面:

using System;
using System.Collections;
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;public partial class CheckCode : System.Web.UI.Page
{protected void Page_Load(object sender, EventArgs e){this.CreateCheckCodeImage(GenerateCheckCode());}private string GenerateCheckCode(){int number;char code;string checkCode = String.Empty;Random random = new Random();for (int i = 0; i < 5; i++){number = random.Next();if (number % 2 == 0)code = (char)('0' + (char)(number % 10));elsecode = (char)('A' + (char)(number % 26));checkCode += code.ToString();}//Response.Cookies.Add(new HttpCookie("CheckCode", checkCode));Session["UserCCode"] = 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 * 14.5)), 26);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", 13, (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.DarkTurquoise, 1.2f, true);g.DrawString(checkCode, font, brush, 6, 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();}}
}

实现效果:

源码下载:http://download.csdn.net/detail/njxiaogui/5279096

转载于:https://www.cnblogs.com/xiaofengfeng/archive/2013/04/21/3034557.html

c#生成随机彩色验证码例子相关推荐

  1. Java生成随机图片验证码工具类

    一.第一种生成随机图片验证码 public class VerifyCodeUtil {//生成随机数据的数据源 public static final String VERIFY_CODES = & ...

  2. java 练习之生成随机四位验证码

    java 小demo - 随机生成四位验证码 import javax.swing.*; import java.awt.*; import java.util.Random; /*** @autho ...

  3. python 基于pillow模块生成随机图片验证码教程

    效果图 我们先来看一下大致的效果图. 以上图形都是用非常基础的元素随机构成的:点,线,曲线,文本.而pillow模块远远不止这些功能,如果学好了它,真的就是你想怎么花就怎么花. 那么现在我们就去学习一 ...

  4. 实现Java生成随机图片验证码

    前言 这篇文章主要介绍了如何通过Java如何生成验证码并验证.验证码的作用我想必大家都知道,话不多说开始实施! 提示:写完文章后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言 1.项 ...

  5. 用Java语言编写的随机彩色验证码

    在制作网页过程中,免不了在登录注册页面增加一个验证码来延长数据提交时间,以免大量用户过快连接数据库读取,写入数据导致服务器崩溃.以下是用Java语言编写的彩色验证码,可用于jsp.html文件. 源代 ...

  6. 生成随机验证码,上传图片文件,解析HTML

    1.生成随机图片验证码 1.1 页面调用createvalidatecode 生成随机图片验证码方法: <div class="inputLine"> <labe ...

  7. 20、随机图片验证码API接口,免费好用

    1.前言 随机图片验证码接口,这个是RollToolsApi通用系列接口的其中一个,内部包含了1个小接口,可生成随机图片验证码,并返回图片给你. 查看接口完整信息:https://www.mxnzp. ...

  8. 大乐透python预测程序_Python生成随机验证码,大乐透号码

    随机生成验证码 示例代码: import random # 导入标准模块中的random if __name__ == '__main__': check_code = "" # ...

  9. 小白都看得懂的使用Python生成随机验证码图片,以及后续优化方案

    环境:Anaconda3-2020.02 首先我们分解一下需要做什么: 生成随机的字母字符串 生成生成随机的背景色 生成随机的字体颜色 把随机的字符串用随机的颜色渲染,然后放到一块随机的背景色上面,基 ...

  10. 用C#生成随机中文汉字验证码的基本原理

    前几天去申请免费QQ号码,突然发现申请表单中的验证码内容换成了中文,这叫真叫我大跌眼镜感到好笑,Moper上的猫儿们都大骂腾讯采用中文验证码.^_^ 我不得不佩服腾讯为了防止目前网络上横行的QQ号码自 ...

最新文章

  1. 百度地图 IOS版开发经验分享
  2. ios开发返回按钮消失_iOS开发之自定义导航栏返回按钮右滑返回手势失效的解决...
  3. 进程、线程和协程的理解
  4. JavaScript---Ajax和函数回调,异步编程
  5. VS2017 installed in a different location
  6. 模式-视图-控制器模式2.0
  7. ASP.NET深入浅出系列3- Page类
  8. zabbix node.js mysql_Zabbix添加Node.js监控的方法
  9. 对比罗小平先生的《delphi精要》和李维先生的《inside VCL》
  10. 新疆师范大学计算机研究生值得读吗,研究生还值得读吗
  11. c++ opencv mat_OpenCV计算机视觉-Core组件(一)
  12. python 人工智能项目代码_7个Python实战项目代码,让你分分钟晋级大神!
  13. php度分秒,度分秒计算方法-度分秒的计算方法!急
  14. 白话理解傅里叶变换原理(时域频域)
  15. 考研基础高等数学笔记
  16. 前端项目实战11-hook usememo使用
  17. 先验概率、后验概率、似然概率概念
  18. 51nod 1299 监狱逃离 树形dp/最小割
  19. ISCC web题复现
  20. 【MATLAB库函数系列】resample(重采样函数)的C语言实现【姊妹篇2纯C语言实现】

热门文章

  1. UserWarning: h5py is running against HDF5 1.10.5 when it was built against 1.10.4
  2. vs2017安装qt
  3. opencv ret, binary = cv2.threshold(src, 180, 255, )二值化的类型
  4. imagenet2012数据集
  5. 如何开发神经网络来预测汽车保险支出
  6. linux终端使用python的matplotlib模块画图出现“could not open display”问题解决
  7. seo查询系统php源码,2020版SEO计费系统的源码
  8. C++ std::condition_variable 是什么 有什么用 条件变量 线程同步 wait wait_for notify_one notify_all
  9. 以太坊虚拟机 EVM(1)EVMC interpreter
  10. Kubernetes 小白学习笔记(10)--搭建一个kubernetes集群-组建节点网络