验证码html调用

  1. 验证码:<input name="txtCode0" type="text" id="txtCode0" class="login-text" size="" maxlength="">
  2. <img src="CodeHandler.ashx" id="imgCode" alt="验证码" title="点击刷新验证码" align="middle"
  3. style="height: 24px; width: 70px;" onclick="refreshRandCode()">

验证码刷新

  1. //刷新验证码
  2. function refreshRandCode() {
  3. $('#imgCode').hide().attr('src',
  4. 'CodeHandler.ashx?' + Math.floor(Math.random() * 100)).fadeIn();
  5. }

验证码后台判断

  1. Session["checkCode"]  

还有2个验证码效果请看我下一篇博客

验证码CodeHandler.ashx

难以分清的的字母i、o已删除

  1. <%@ WebHandler Language="C#" Class="CodeHandler" %>
  2.  
  3. using System;
  4. using System.Web;
  5. using System.Drawing;
  6.  
  7. public class CodeHandler : IHttpHandler, System.Web.SessionState.IRequiresSessionState{
  8.  
  9. public string charSet = "0,1,2,3,4,5,6,8,9,A,B,C,D,E,F,G,H,J,K,L,M,N,P,Q,R,S,T,U,V,W,X,Y,Z";
  10. public void ProcessRequest (HttpContext context) {
  11. string validateCode = CreateRandomCode();
  12. context.Session["checkCode"] = validateCode;
  13. CreateImage(validateCode, context);
  14. }
  15.  
  16. public bool IsReusable {
  17. get {
  18. return false;
  19. }
  20. }
  21.  
  22. /// <summary>
  23. /// 生成验证码
  24. /// <param name="n">位数</param>
  25. /// <returns>验证码字符串</returns>
  26. private string CreateRandomCode(int n)
  27. {
  28. string[] CharArray = charSet.Split(',');
  29. string randomCode = "";
  30. int temp = -;
  31. Random rand = new Random();
  32. for (int i = ; i < n; i++)
  33. {
  34. if (temp != -)
  35. {
  36. rand = new Random(i * temp * ((int)DateTime.Now.Ticks));
  37. } int t = rand.Next(CharArray.Length - );
  38. if (temp == t)
  39. {
  40. return CreateRandomCode(n);
  41. } temp = t;
  42. randomCode += CharArray[t];
  43. }
  44. return randomCode;
  45. }
  46. private void CreateImage(string checkCode, HttpContext context)
  47. {
  48. int iwidth = (int)(checkCode.Length * +);
  49. System.Drawing.Bitmap image = new System.Drawing.Bitmap(iwidth, );
  50. Graphics g = Graphics.FromImage(image);
  51. Font f = new System.Drawing.Font("Arial", , (System.Drawing.FontStyle.Italic | System.Drawing.FontStyle.Bold)); // 前景色
  52. Brush b = new System.Drawing.SolidBrush(Color.Black); // 背景色
  53. g.Clear(Color.White); // 填充文字
  54. g.DrawString(checkCode, f, b, , ); // 随机线条
  55. Pen linePen = new Pen(Color.Gray, );
  56. Random rand = new Random();
  57. for (int i = ; i < ; i++)
  58. {
  59. int x1 = rand.Next(image.Width);
  60. int y1 = rand.Next(image.Height);
  61. int x2 = rand.Next(image.Width);
  62. int y2 = rand.Next(image.Height);
  63. g.DrawLine(linePen, x1, y1, x2, y2);
  64. } // 随机点
  65. for (int i = ; i < ; i++)
  66. {
  67. int x = rand.Next(image.Width);
  68. int y = rand.Next(image.Height);
  69. image.SetPixel(x, y, Color.Gray);
  70. } // 边框
  71. g.DrawRectangle(new Pen(Color.Gray), , , image.Width - , image.Height - ); // 输出图片
  72. System.IO.MemoryStream ms = new System.IO.MemoryStream();
  73. image.Save(ms, System.Drawing.Imaging.ImageFormat.Jpeg);
  74. context.Response.ClearContent();
  75. context.Response.ContentType = "image/Jpeg";
  76. context.Response.BinaryWrite(ms.ToArray());
  77. g.Dispose();
  78. image.Dispose();
  79. }
  80.  
  81. }

 验证码效果:

Asp.Net验证码1的更多相关文章

  1. ASP.net 验证码(C#) MVC

    ASP.net 验证码(C#) MVC http://blog.163.com/xu_shuhao/blog/static/5257748720101022697309/ 网站添加验证码,主要为防止机 ...

  2. MVC的验证(模型注解和非侵入式脚本的结合使用) .Net中初探Redis .net通过代码发送邮件 Log4net (Log for .net) 使用GDI技术创建ASP.NET验证码 Razor模板引擎 (RazorEngine) .Net程序员应该掌握的正则表达式

    MVC的验证(模型注解和非侵入式脚本的结合使用)   @HtmlHrlper方式创建的标签,会自动生成一些属性,其中一些属性就是关于验证 如图示例: 模型注解 通过模型注解后,MVC的验证,包括前台客 ...

  3. Asp.Net验证码2

    using System; using System.Collections.Generic; using System.Web; using System.Web.UI; using System. ...

  4. 关于 ASP.NET 验证码

    Session["CheckCode"] 这个..不懂神马意思.. .创建一个用户控件 用户名:TextBox 密码: TextBox 验证码:TextBox 验证码图片 < ...

  5. ASP.NET 验证码 不同浏览器 不刷新问题

    具体为什么不刷新是缓存机制不同,验证码图片的src或ImageUrl的获取是来自一个文件,由于连接地址没变所以不同内核浏览器有的会认为源没有变,解决办法就是在连接后面加上一个随机参数如可以用JS的Ma ...

  6. asp.net验证码及怎么获取里面的数值(整合)

    一.ASP.Net的验证码的作用 对于一个预防攻击的web表单来讲,验证码通常是一个常见的措施.因为如果对于一些public区域的页面内容来讲,譬如一个登录表单,如果没有必要的安全措施,很可能遭到模拟 ...

  7. ASP.NET——验证码的制作

            我们在登陆站点,发表博客或者提交评论的时候,常常会遇到填写验证码这一项,当时感觉挺奇妙的样子,最终在牛腩新闻公布系统里接触到了,在这里小小的总结下.         用到的东东有三个: ...

  8. asp.net 验证码技术

    网站验证码是一种很常用的技术.下面我介绍下技术上是如何实现的. 验证码是一张图片.我们需要在前台代码中写一段<img>,src指向一张页面(ValidateImage.aspx). < ...

  9. asp.net验证码的编写

    很多时候我们在登录什么网站的时候,除了需要什么用户名和密码之外,有的还需要验证码那么在asp.net中这个验证码如何编写和设计,今天我就来给大家说一下: 首先创建一个页面名字随便起一个,我们这里叫做C ...

  10. asp.net验证码

    asp.net 生成验证码问题 .添加一个.ashx文件 <%@ WebHandler Language="C#" class="CheckCode" % ...

随机推荐

  1. sql server 2008 执行计划

    SSMS允许我们查看一个图形化的执行计划(快捷键Ctrl+L)

  2. 如何修正导入模型的旋转? How do I fix the rotation of an imported model?

    原地址:http://game.ceeger.com/Manual/HOWTO-FixZAxisIsUp.html Some 3D art packages export their models s ...

  3. Ext Js学习之IIS理解

    站点分为静态网站和动态网站,纯粹利用html编写的网站属于静态网站,不宜维护和更新而利用C#+extjs等前台+后台技术编写的网站就属于动态站点,有更多的交互,易维护和更新,比如降价的页面,利用htm ...

  4. GridControl Find/Clear 添加图标

    public static void ControlFind(GridControl grid) { FindControl fControl = null; foreach (Control ite ...

  5. window内存管理与内存原理

    转自: http://blog.csdn.net/iamfranter/article/details/6826270 WIndows为每个进程分配了4GB的虚拟地址空间,让每个进程都认为自己拥有4G ...

  6. (4)opencv在android平台上实现 物体跟踪

    最近项目时间很紧,抓紧时间集中精力去研究android平台的opencv里的物体跟踪技术 其他几篇文章有时间再去完善吧 从网上找到了一些实例代码,我想采取的学习方法是研究实例代码和看教程相结合,教程是 ...

  7. Linux网络编程8——对TCP与UDP的简易封装

    引言 每次使用socket通信,都会有很对相似的操作.本文,会对TCP与UDP通信做一简单封装,并生成动态库. 代码 my_socket.h #ifndef __MY_SOCKET_H__ #defi ...

  8. spring_150802_resource

    接口Service: package com.spring.service; public interface DogPetService { public void queryAllDogPets( ...

  9. zend studio10破解

    http://blog.csdn.net/qq1355541448/article/details/16807429

  10. IE8 浏览器自动保存文档副本,添加缓存

    若响应(response)HTTP头信息中没有关于缓存的头信息,则在IE8中第二次请求网页时,从缓存中拿取文件,而不是重新向服务器请求.而在Firefox或chrome则是重新向服务器请求. 解决方法 ...