当前位置:  编程技术>.net/c#/asp.net

c#实现的简单验证码

    来源: 互联网  发布时间:2014-08-30

    本文导语:  大家在申请邮箱或用户注册时,经常会遇到输入注册码的情况,以下代码实现了一个简单的验证码功能。 有需要的朋友,可以参考下。 代码如下: //注意:源代码端只需要第一行    using System;  using System.Collections.Generic;  u...

大家在申请邮箱或用户注册时,经常会遇到输入注册码的情况,以下代码实现了一个简单的验证码功能。
有需要的朋友,可以参考下。

代码如下:
//注意:源代码端只需要第一行
 
 using System;
 using System.Collections.Generic;
 using System.Linq;
 using System.Web;
 using System.Web.UI;
 using System.Web.UI.WebControls;
 using System.Drawing;
 using System.Drawing.Imaging;
 using System.IO;
 
 namespace TwoStore.UI.login
 {
     public partial class CodeImage : System.Web.UI.Page
     {
         protected void Page_Load(object sender, EventArgs e)
         {
             DrapingCodes(ValidateCode());
         }
         private string ValidateCode()
         {
             string result = "";
             string[] codes = { "1", "2", "3", "4", "5", "6", "7", "8", "9", "0", "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"};
             //创建随机数
             Random rand = new Random();
             //rand.Next(codes.Length),随机数的长度为数组的长度
             for (int i = 0; i < 4; i++)
             {
                 result += codes[rand.Next(codes.Length)];
             }
             //可以把说的值放在Session中,以判断用户输入的是否显示的验证码
             //也可用Cookie
             Session["code"] = result;
             return result;
         }
         //画图需要导入命名空间System.Drawing;System.Drawing.Imaging;System.IO;                      
         private void DrapingCodes(string code)
         {
             //创建画板---Bitmap---此函数重载12次
             //创建画板时直接规定了它的width,height
             Bitmap bmap = new Bitmap(70, 30);
             //创建画家---并把画布给画家
             Graphics grap = Graphics.FromImage(bmap);
             //让画家把画板图上背景颜色
             grap.Clear(Color.White);
             //创建刷子
             Brush brush = new SolidBrush(Color.Black);
             //创建字体
             Font f = new Font("Comic Sans MS", 15);
 
             //开始绘画
             grap.DrawString(code, f, brush, 10, 2);
 
             //随机数
             Random rand = new Random();
             //打上噪点
             for (int i = 0; i < 50; i++)
             {
                 bmap.SetPixel(rand.Next(70), rand.Next(30), Color.Black);
             }
             //画笔刷子
             Brush b1 = new SolidBrush(Color.Blue);
             //画笔
             Pen p = new Pen(b1);
             //7,画上几条线
             for (int i = 0; i < 3; i++)
             {
                 grap.DrawLine(p, rand.Next(70), rand.Next(30), rand.Next(70), rand.Next(30));
             }
             //定义一个内存流
             MemoryStream ms = new MemoryStream();
             //把图片放到内存流中
             bmap.Save(ms, ImageFormat.Gif);
             //清空输出流
             Response.Clear();
             //设置输出内容的格式
             Response.ContentType = "image/gif";
             //以二进制输出byte[]
             Response.BinaryWrite(ms.ToArray());
             Response.End();
         }
     }
 }

 


    
 
 

您可能感兴趣的文章:

  • c#通过委托delegate与Dictionary实现action选择器代码举例
  • C#实现获取枚举中元素个数的方法
  • C#实现自定义双击事件
  • C#键盘输入回车键实现点击按钮效果的方法
  • C#实现获取一年中是第几个星期的方法
  • C#实现Datatable排序的方法
  • C#实现装箱与拆箱操作简单实例
  • 解决C#中WebBrowser的DocumentCompleted事件不执行的实现方法
  • C#下实现创建和删除目录的实例代码
  • 使用C#实现在屏幕上画图效果的代码实例
  • C#实现过滤html标签并保留a标签的方法
  • c#实现TextBox只允许输入数字
  • C# Winform 整个窗口拖动的实现代码
  • c# ListView实现双击Item事件的变通方法
  • C#实现随鼠标移动窗体实例
  • C#中的FileUpload 选择后的预览效果具体实现
  • C# 窗体隐藏及任务管理器中禁止关闭的实现代码
  • C#的锯齿数组以及C++实现代码
  • C#格式化文件大小的实现代码
  • C#怎样才能实现窗体最小化到托盘呢?
  • C# char类型字符转换大小写的实现代码
  • JSP单选按钮验证、下拉框验证、复选框验证实现代码
  • 高手指教:如何实现smtp的验证功能?
  • jsp中是否能实现输入验证
  • C#实现的简单验证码识别实例
  • jquery 手机发送验证码倒计时实现代码
  • php基础练习--简单验证码实现
  • PHP实现变色验证码实例
  • jquery实现手机发送验证码的倒计时代码
  • 一个简单的PHP验证码实现代码
  • DevExpress实现GridControl单元格编辑验证的方法
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 通过javascript实现DIV居中,兼容各浏览器版本
  • socket实现多文件并发传输,求助多线程实现问题?
  • Python GUI编程:tkinter实现一个窗口并居中代码
  • interface 到底有什么用???实现接口,怎么实现??
  • 通过javascript库JQuery实现页面跳转功能代码
  • 怎么用Jsp实现在页面实现树型结构?
  • sharepoint 2010 使用STSNavigate函数实现文件下载举例
  • windows 下的PortTunnel 在linux下怎么实现?或者相应的已经实现的软件?端口映射
  • php实现socket实现客户端和服务端数据通信源代码
  • 网站重定向用C语言实现iptables,ACL实现
  • flash AS3反射实现(describeType和getDefinitionByName)
  • 在linux下如何编程实现nslookup命令实现的IP地址和域名互相转换的功能?
  • boost unordered_map和std::list相结合的实现LRU算法
  • 求在freebsd+Squid下实现pc上网的透明代理的实现方法!给出具体配置方法的高分谢!
  • 使用java jdk中的LinkedHashMap实现简单的LRU算法
  • linux下如实现与window下的驱动器实现文件共享??
  • iphone cocos2d 精灵的动画效果(图片,纹理,帧)CCAnimation实现
  • qt如何实现:操作键盘实现数据的滚动?
  • c语言判断某一年是否为闰年的各种实现程序代码
  • 我想用APPLET实现读取客户端的图片文件,该如何实现?
  • html<pre>标签自动换行实现方法
  • PING是用TCP,还是用UDP来实现的?或是采用其它协议实现的?


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3