后台:

     //生成验证码
   public void CreateImage()
{
       //获取4位验证码,并转成小写。
string code = getRandomNumber().ToLower();
//验证码赋值Cookie
HttpCookie myCookie = new HttpCookie(Constant.LOGIN_VALIDATE_CODE);
myCookie.Value = MD5Utils.getMD5(code);
myCookie.Expires = DateTime.Now.AddMinutes();
Response.Cookies.Add(myCookie);//字体名
string strFontName = "宋体";
//字体大小
int intFontSize = ;
//图像宽
int intWidth = ;
//图像长
int intHeight = ;
//背景颜色
Color bgColor = ColorTranslator.FromHtml("#EFB3FF");
//前景颜色
Color foreColor = ColorTranslator.FromHtml("#FF0000");
//产生字体
Font forFont = new Font(strFontName, intFontSize, FontStyle.Bold);
//生成图片
Bitmap newBitmap = new Bitmap(intWidth, intHeight, PixelFormat.Format32bppArgb);
Graphics g = Graphics.FromImage(newBitmap);
//定义一个四方形框与字片一样大小
Rectangle newRect = new Rectangle(, , intWidth, intHeight);
//涂上背景色
g.FillRectangle(new SolidBrush(bgColor), newRect);
//写字
g.DrawString(code, forFont, new SolidBrush(foreColor), , );
MemoryStream mStream = new MemoryStream();
//存入MemoryStream
newBitmap.Save(mStream, ImageFormat.Gif);
g.Dispose();
newBitmap.Dispose();
//发送
Response.ClearContent();
Response.ContentType = "image/GIF";
Response.BinaryWrite(mStream.ToArray());
HttpContext.ApplicationInstance.CompleteRequest();
}
     //生成4位验证码
     public static string getRandomNumber(int Length)
{
System.Text.StringBuilder newRandom = new System.Text.StringBuilder();
Random rd = new Random();
for (int i = ; i < Length; i++)
{
//得到数字(根据情况二选一)
newRandom.Append(constant[rd.Next()]);
//得到字符和数字
newRandom.Append(constant[rd.Next()]);
}
return newRandom.ToString();
}
     //验证码库
     private static char[] constant =
{
'','','','','','','','','','',
'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',
'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'
};

前台(点击图片触发更改验证码的方法):

<img border="0" class="text4" align="absmiddle" style="cursor: pointer;" onclick="changeImages();" src="" name="createImage" title="点击换一张图片" id="Img3" />

JavaScript:

function changeImages() {
var d = new Date();
var obj = document.getElementById('Img');
obj.src = "/Common/CreateImage?tmep_seq=" + d.getTime();
}
changeImages();

C# 验证码生成的更多相关文章

  1. php 图片验证码生成 前后台验证

    自己从前一段时间做了个php小项目,关于生成图片验证码生成和后台的验证,把自己用到的东西总结一下,希望大家在用到相关问题的时候可以有一定的参考性. 首先,php验证码生成. 代码如下: 1.生成图像代 ...

  2. Atitit 图片 验证码生成attilax总结

    Atitit 图片 验证码生成attilax总结 1.1. 图片验证码总结1 1.2. 镂空文字  打散 干扰线 文字扭曲 粘连2 1.1. 图片验证码总结 因此,CAPTCHA在图片验证码这一应用点 ...

  3. ASP.NET验证码生成与识别

    一般验证码页面只输出一个图片而不进行其他业务处理,所以验证码一般放在一般处理程序(httpHandler)页面中,而如果将验证码生成代码放到一般处理程序中,要将生成验证码保存在Session中,这里我 ...

  4. ajax原理,验证码生成原理

    什么是ajax AJAX:”Asynchronous JavaScript and XML” 中文意思:异步JavaScript和XML 指一种创建交互式网页应用的网页开发技术.   不是指一种单一的 ...

  5. .net验证码生成及使用

    验证码的作用: 几年前,大部分网站.论坛之类的是没有验证码的,因为对于一般用户来说验证码只是增加了用户的操作,降低了用户的体验.但是后来各种灌水机器人.投票机器人.恶意注册机器人层出不穷,大大增加了网 ...

  6. 验证码生成-->漂亮啊

    验证码不用输出太多的HTML代码,直接创建一个一般处理程序,直接上代码 public class VCode : IHttpHandler { HttpContext context = null; ...

  7. Web---图片验证码生成教程详解-从简单到复杂-从本地到前后台

    首先,我们先来看本地如何生成图片验证码的,再来写输出到网页的验证码如何实现. 先来看最简单的-实现的功能是,将一个字符串变成图片写入到文件中 实现代码: package cn.hncu.img; im ...

  8. 利用谷歌 kaptcha 进行验证码生成

    package main.com.smart.controller; import com.google.code.kaptcha.Producer; import main.com.smart.ut ...

  9. 轻量级验证码生成插件webutil-licenseImage

    轻量级验证码生成插件webutil-licenseImage源码与实例应用   webutil-licenseImage 插件内置4种验证码样式,支持用户扩展.自定义样式实现简单验证码. 源码脱管地址 ...

  10. JAVA 验证码生成(转)

    最近做了一下验证码的功能,网上找了一篇还不错,引用下:http://blog.csdn.net/ruixue0117/article/details/22829557 这篇文章非常好,但是web和js ...

随机推荐

  1. [ES6]探究数据绑定之Proxy

    知识储备 Proxy 方式实现数据绑定中涉及到 Proxy.Reflect.Set.Map 和 WeakMap,这些都是 ES6 的新特性. Proxy Proxy 对象代理,在目标对象之前架设一层拦 ...

  2. 网络配置br0 brtcl

    1.brctl addbr br0        如果根据第3步,那这里不用写 2.brctl addif br0 eth0    如果第3步写了,这里也不用 这时候用ssh应该会断网... 3.设置 ...

  3. JavaScript入门学习书籍的阶段选择

    对于许多想学习 JavaScript 的朋友来说,无疑如何选择入门的书籍是他们最头疼的问题,或许也是他们一直畏惧,甚至放弃学习 JavaScript 的理由.在 JavaScript 方面,自己不是什 ...

  4. apache -- 端口被占用

    需求不断变更,总会安装不同的软件,这些软件理想情况下会使用不同的端口,但还是有软件之间端口被占的情况. 最近在电脑上装了一个VMware虚拟机软件,结果导致开启本机的Apache服务无法启动,报 “T ...

  5. 最简单的基于FFMPEG+SDL的音频播放器 ver2 (採用SDL2.0)

    ===================================================== 最简单的基于FFmpeg的音频播放器系列文章列表: <最简单的基于FFMPEG+SDL ...

  6. JMeter使用记录2 -- Web測试

    Web測试用例 新建线程组.配置起3线程,循环1次.1秒启动全部线程.进行login.循环1个主要页面的读写,并对另外一个主要页面进行读操作,最后logout并在aggregate graph/gra ...

  7. Ubuntu下,如何解决Unable to locate package

    在虚拟机上新装了一个ubuntu 12.10,想在上面装一个Git,却发生了以下错误信息 我觉得原因可能是我换了163的源,没有更新所以找不到这个包. 这时候就要使用 sudo apt-get upd ...

  8. tomcat日志神器--kibana

    最近公司搭了套kibana的日志系统,感受比原来查看日志方便多了.记得以前查看日志是通过ssh到服务器,查看系统日志用vi查看器查看或者下载到本地,用logview查看搜索,可读性很低.自从用了kib ...

  9. javascript 高级选择器:querySelector 和 querySelectorAll

    querySelector 和 querySelectorAll 方法是 W3C Selectors API 规范中定义的.他们的作用是根据 CSS 选择器规范,便捷定位文档中指定元素. 目前几乎主流 ...

  10. About {DynamicResource {x:Static SystemColors.ControlBrushKey}}

    from : http://blog.sina.com.cn/s/blog_749e42850100sahi.html 前提: <system:String x:Key="{Compo ...