生成验证码的一段源代码
在页面中生成验证码的代码:
{
string checkCode = GetRandomCode(4);
Session["CheckCode"] = checkCode;
SetPageNoCache();
CreateImage(checkCode);
}
/// <summary>
/// 设置页面不被缓存
/// </summary>
private void SetPageNoCache()
{
Response.Buffer = true;
Response.ExpiresAbsolute = System.DateTime.Now.AddSeconds(-1);
Response.Expires = 0;
Response.CacheControl = "no-cache";
Response.AppendHeader("Pragma","No-Cache");
}
private string GetRandomCode(int CodeCount)
{
string allChar = "0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F,G,H,i,J,K,M,N,P,Q,R,S,T,U,W,X,Y,Z";
string[] allCharArray = allChar.Split(',');
string RandomCode = "";
int temp = -1;
Random rand = new Random();
for (int i=0;i<CodeCount;i++)
{
if (temp != -1)
{
rand = new Random(temp*i*((int) DateTime.Now.Ticks));
}
int t = rand.Next(33);
while (temp == t)
{
t = rand.Next(33);
}
temp = t;
RandomCode += allCharArray[t];
}
return RandomCode;
}
private void CreateImage(string checkCode)
{
int iwidth = (int)(checkCode.Length * 14);
System.Drawing.Bitmap image = new System.Drawing.Bitmap(iwidth, 20);
Graphics g = Graphics.FromImage(image);
Font f = new System.Drawing.Font("Arial ", 10);//, System.Drawing.FontStyle.Bold);
Brush b = new System.Drawing.SolidBrush(Color.Black);
Brush r = new System.Drawing.SolidBrush(Color.FromArgb(166,8,8));
//g.FillRectangle(new System.Drawing.SolidBrush(Color.Blue),0,0,image.Width, image.Height);
// g.Clear(Color.AliceBlue);//背景色
g.Clear(System.Drawing.ColorTranslator.FromHtml("#99C1CB"));//背景色
char[] ch = checkCode.ToCharArray();
for (int i = 0; i < ch.Length; i++ )
{
if(ch[i] >= '0' && ch[i] <= '9')
{
//数字用红色显示
g.DrawString(ch[i].ToString(), f, r, 3 + (i * 12),3);
}
else
{ //字母用黑色显示
g.DrawString(ch[i].ToString(), f, b, 3 + (i * 12),3);
}
}
System.IO.MemoryStream ms = new System.IO.MemoryStream();
image.Save(ms,System.Drawing.Imaging.ImageFormat.Jpeg);
//history back 不重复
Response.Cache.SetNoStore();//这一句
Response.ClearContent();
Response.ContentType = "image/Jpeg";
Response.BinaryWrite(ms.ToArray());
g.Dispose();
image.Dispose();
}
调用的时候设置imageurl='...aspx'就可以了。
转载于:https://www.cnblogs.com/Hard/archive/2009/02/25/1398061.html
生成验证码的一段源代码相关推荐
- 生成验证码_JSP源代码
jsp验证码实现源代码 (2011-10-16 11:11:40) 验证码原理:①首先随机生成数字或字母:②把生成的数字或字母保存在Session这次会话中:③最后,在登陆页面上把接收用户输入的验证码 ...
- php动态网页验证,用动态网页技术PHP生成验证码图片的源代码
文件a.php //checkNum.php session_start(); function random($len) { $srcstr="ABCDEFGHIJKLMNOPQRSTUV ...
- artdialog 异步加载页面 生成验证码
artdialog 异步加载一个页面 需求:例如现在好多网站的登录或注册 都是点击弹出一个层出来 然后在上面登录.注册 这个登录可能在网站的每个页面都会有,但是我们又不能在每个页面都这一段html加 ...
- java生成验证码实例_Java生成验证码功能实例代码
页面上输入验证码是比较常见的一个功能,实现起来也很简单.给大家写一个简单的生成验证码的示例程序,需要的朋友可以借鉴一下. 闲话少续,直接上代码.代码中的注释很详细. package com.SM_te ...
- 利用Python只需3行代码即可生成验证码
现在验证码的种类真的是越来越多,短信验证码.语音验证码.图片验证码.滑块验证码 ... 我们在 PC 的网页端或者手机上的 app 进行登录或者注册时,应该总会遇见图片验证码,比如下面这类: 很多人学 ...
- Windows c# 生成验证码图片
1.生成类CodeImageUtil using System; using System.Drawing; using System.IO;namespace sdp_share_pjt {publ ...
- python3—批量生成验证码(含数字、英文、中文)
最近一直在复习,马上要期末考试了,所以这段时间没怎么写博客--今天,正好有时间来写一写博客,希望访问该博客的朋友们点一点赞,谢谢!! 文章目录 1.绘制图片 2.随机生成干扰线 3.含数字英文的验证码 ...
- java使用工具类生成验证码图片时,出现Exception in thread “main“ java.io.FileNotFoundException: C:\a.jpg (拒绝访问。)
使用这段代码来测试生成验证码图片时 public static void main(String[] args) throws IOException {//生成验证码的图片位置OutputStrea ...
- php直播源码,生成验证码并提交验证
php直播源码,生成验证码并提交验证的相关代码 一般处理程序(WaterMark.ashx)中代码 using System; using System.Collections.Generic; us ...
最新文章
- 不做调参侠,重视数据及处理能力?吴恩达发起的Data-Centric赛事总结!
- 官方 React 快速上手脚手架 create-react-app
- PowerShell-6.文件操作
- linux 指令tftp传输文件_tftp命令_Linux tftp 命令用法详解:在本机和tftp服务器之间使用TFTP协议传输文件...
- 【最后测试点超时】1063 Set Similarity (25 分)_22行代码AC
- CentOS7 编译 Gradle
- 云计算解决方案——电信行业
- thinkpad s3 安装win8 kali双系统笔记
- oracle报无效月份 注册表,在oracle中插入时间时出现“无效的月份”解决方法
- IDEA里如何安装Python插件打造开发环境(图文详解)
- 2.图像作为函数 | 裁剪、颜色通道、图像相加_5
- can总线报文是固定的吗_CAN总线负载率的计算方式
- linux中的设备名称和设备号
- mysql 的下划线搜索转义
- c语言 t跳几个字节,int占几个字节(c语言)
- 如何确认IAR软件有没有激活
- cad上样条曲线上的点太多了_CAD如何将样条曲线转换成多段线
- 10g gtx 光纤通信测试_光纤通信系统仿真实验
- Ffmpeg 视频教程 向视频中添加文字
- Xiangqi UVA - 1589