后台:

     //生成验证码
   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. java-jsp与servlet

    Java Servlet 是运行在带有支持 Java Servlet 规范的解释器的 web 服务器上的 Java 类. 每次服务器接收到一个 Servlet 请求时,服务器会产生一个新的线程并调用服 ...

  2. WebForm和MVC的一些知识(转)

    转自:http://www.cnblogs.com/liuhf939/p/3417203.html 比较WebForm和Mvc的请求处理方式 首先简单了解一下Asp.Net中怎么对页面进行请求处理的: ...

  3. SpringMVC--拦截器的使用

    SpringMVC的请求如下面这种图所示:  可以看出所有的请求都要通过Dispatherservlet来接收,然后通过Handlermapping来决定使用哪个控制器,再根据ViewResolver ...

  4. 【转】【Java/Android】Toast使用方法大全

    Toast 是一个 View 视图,快速的为用户显示少量的信息. Toast 在应用程序上浮动显示信息给用户,它永远不会获得焦点,不影响用户的输入等操作,主要用于 一些帮助 / 提示.Toast 最常 ...

  5. e1084. 捕获错误和异常

    All errors and exceptions extend from Throwable. By catching Throwable, it is possible to handle all ...

  6. Unity3D - 详解Quaternion类(二)

    OK,不做引子了,接上篇Unity3D - 详解Quaternion类(一)走起! 四.Quaternion类静态方法 Quaternion中的静态方法有9个即:Angle方法.Dot方法.Euler ...

  7. html中可以自定义属性,,,妈的竟然才知道..

    html中可以自定义属性,,,妈的竟然才知道.. <input userinfo="没见过帅哥呀" />

  8. EF中修改对象的值的问题。。。(字段超级多的时候)

    一般EF中修改单个对象的值,我是这样处理的. 如:DBEntities db=new DBEntities(); student stu = db.student.firstOrdefault(m=& ...

  9. 【Java面试题】54 去掉一个Vector集合中重复的元素

    在Java中去掉一个 Vector 集合中重复的元素 1)通过Vector.contains()方法判断是否包含该元素,如果没有包含就添加到新的集合当中,适用于数据较小的情况下. import jav ...

  10. MySQL(五)之DDL(数据定义语言)与六大约束

    前言 前面在数据库的讲解中,其实很多东西都非常的细节,在以前的学习过程中我都是没有注意到的.可能在以后的工作中会碰到所以都是做了记录的. 接下来,我将分享的是MySQL的DDL用来对数据库及表进行操作 ...