效果图:(Flowing)

1、项目中新建用于存储(位图)图片文件夹

图解:

2、前台可以添加一ASP.NET控件或其他任意用来展示图片标签等(如下)

    <div>
<asp:Image ID="Image1" runat="server" ImageUrl="../img/RandomImg.gif" />
</div>

3、产生随机数(如下)

        /// <summary>
/// 产生随机数
/// </summary>
/// <param name="codeLength"></param>
/// <returns></returns>
public string CreateCode(int codeLength)
{
//这里本人没做是否允许重复控制,读者需要可做相应控制
string so = "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,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";
string[] strArr = so.Split(',');
string code = "";
Random rand = new Random();
for (int i = ; i < codeLength; i++)
{
code += strArr[rand.Next(, strArr.Length)];
}
return code;
}

4、产生验证图片(如下)

        /// <summary>
/// 产生验证图片
/// </summary>
/// <param name="code"></param>
public void CreateImage(string code)
{
//建立位图对象,(70,25)位图大小控制
Bitmap image = new Bitmap(, );
//根据上面创建的位图对象创建绘图层
Graphics g = Graphics.FromImage(image);
WebColorConverter ww = new WebColorConverter();
g.Clear((Color)ww.ConvertFromString("#FAE264"));//产生位图背景色 Random random = new Random();
//画图片的背景噪音线
for (int i = ; i < ; i++)
{
int x1 = random.Next(image.Width);
int x2 = random.Next(image.Width);
int y1 = random.Next(image.Height);
int y2 = random.Next(image.Height); g.DrawLine(new Pen(Color.Green), x1, y1, x2, y2);//Color.LightGray噪音线颜色
}
//创建字体对象
Font font = new Font("Arial", , FontStyle.Bold | FontStyle.Italic);
System.Drawing.Drawing2D.LinearGradientBrush brush = new System.Drawing.Drawing2D.LinearGradientBrush(
new Rectangle(, , image.Width, image.Height), Color.Red, Color.Gray, 1.2f, true);
g.DrawString(code, font, brush, , );
//画图片的边框线
g.DrawRectangle(new Pen(Color.Green), , , image.Width - , image.Height - );
//临时保存(位图)图片
image.Save(Server.MapPath("../img") + "\\RandomImg.gif", System.Drawing.Imaging.ImageFormat.Gif);
}

5、调用(如下)(注意:这里本人仅是为了做测试,读者亦要考虑局部刷新问题,这里本人先不做出详解)

        protected void Page_Load(object sender, EventArgs e)
{
string checkCode = CreateCode();//4代表要产生随机数个数
Session["CheckCode"] = checkCode;
CreateImage(checkCode);
}

欢迎指正,提出更好的方法-wvqusrtg

ASP.NET产生随机验证码的更多相关文章

  1. ASP.Net Jquery 随机验证码 文本框判断

    // 登陆验证 $(function () { var chars = ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'A', 'a', 'B' ...

  2. PYTHON 随机验证码生成

    # 生成一个六位随机验证码 import random # random 生成随机数 temp = '' for i in range(6): num = random.randrange(0,6) ...

  3. Java生成随机验证码

    package com.tg.snail.core.util; import java.awt.Color; import java.awt.Font; import java.awt.Graphic ...

  4. js用正则表达式验证用户和密码的安全性,生成随机验证码

    制作了一个表单,表单验证用户.密码.随机验证码 html页面

  5. php学习笔记:利用gd库生成图片,并实现随机验证码

    说明:一些基本的代码我都进行了注释,这里实现的验证码位数.需要用的字符串都可以再设置.有我的注释,大家应该很容易能看得懂. 基本思路: 1.用mt_rand()随机生成数字确定需要获取的字符串,对字符 ...

  6. python_way,day4 内置函数(callable,chr,随机验证码,ord),装饰器

    python_way,day4 1.内置函数 - 下 制作一个随机验证码 2.装饰器 1.内置函数 - 下 callable() #对象能否被调用 chr() #10进制数字对应的ascii码表中的内 ...

  7. iOS生成本地随机验证码

    原文链接:http://www.cnblogs.com/jerehedu/p/4527707.html 效果图:

  8. python-Day5-深入正则表达式--冒泡排序-时间复杂度 --常用模块学习:自定义模块--random模块:随机验证码--time & datetime模块

    正则表达式   语法:             mport re #导入模块名 p = re.compile("^[0-9]") #生成要匹配的正则对象 , ^代表从开头匹配,[0 ...

  9. 【代码实现】PHP生成各种随机验证码

    原文地址:http://www.phpthinking.com/archives/531 验证码在WEB应用中很重要,通经常使用来防止用户恶意提交表单,如恶意注冊和登录.论坛恶意灌水等.本文将通过实例 ...

随机推荐

  1. Android手机app启动的时候第一个Activity必须是MainActivity吗

    原文:Android手机app启动的时候第一个Activity必须是MainActivity吗 Android手机APP启动的第一个Activity是可以自己设置的,不是必须的MainActivity ...

  2. Xamarin生成的APK大小分析

    原文:Xamarin生成的APK大小分析 刚接触Xamarin都会被Xamarin的售价吓一跳,另外就是它生成的APK大小,官方也有相关的说明,这里加上自己的理解同意讲解下: 以下是针对Android ...

  3. Debug程序无法运行解决

    说明:文章内容部分参考网络上的解决思路. 在没有安装Microsoft Visual Studio的系统上,Debug版本无法正常运行.这是由于缺少vs运行时库引起的. 以vs2005为例.开发机用v ...

  4. thanks使用注意事项;

    router.get('/api/users/search/:key/:page', function(req, res) { if(_.isEmpty(req.params.key)) { res. ...

  5. 7.15 css与js 选择奇偶子元素的区别

    js: 选取偶数位置的 <tr> 元素 $("tr:even") 选取奇数位置的 <tr> 元素 $("tr:odd") css 选取偶 ...

  6. Choosing Between ElasticSearch, MongoDB &amp; Hadoop

    An interesting trend has been developing in the IT landscape over the past few years.  Many new tech ...

  7. Cocos2D-x权威指南:核心类成员CCNode

    节点类(CCNode)是Cocos2D-x中的主要类,继承自CCObject.继承关系如图3-2所看到的. 不论什么须要画在屏幕上的对象都是节点类. 最经常使用的节点类包含场景类(CCScene).布 ...

  8. 2013年 ACM 有为杯 Problem I (DAG)

    有为杯  Problem I DAG  有向无环图 A direct acylic graph(DAG),is a directed graph with no directed cycles . T ...

  9. poj2388 高速排序 模板题

    /** \brief poj2388 * * \param date 2014/8/5 * \param state AC * \return memory time * qsort 784K 110 ...

  10. 如何给Ubuntu 安装Vmware Tools

    http://jingyan.baidu.com/article/3065b3b6e8dedabecff8a435.html