ASP.NET产生随机验证码
效果图:(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产生随机验证码的更多相关文章
- ASP.Net Jquery 随机验证码 文本框判断
// 登陆验证 $(function () { var chars = ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'A', 'a', 'B' ...
- PYTHON 随机验证码生成
# 生成一个六位随机验证码 import random # random 生成随机数 temp = '' for i in range(6): num = random.randrange(0,6) ...
- Java生成随机验证码
package com.tg.snail.core.util; import java.awt.Color; import java.awt.Font; import java.awt.Graphic ...
- js用正则表达式验证用户和密码的安全性,生成随机验证码
制作了一个表单,表单验证用户.密码.随机验证码 html页面
- php学习笔记:利用gd库生成图片,并实现随机验证码
说明:一些基本的代码我都进行了注释,这里实现的验证码位数.需要用的字符串都可以再设置.有我的注释,大家应该很容易能看得懂. 基本思路: 1.用mt_rand()随机生成数字确定需要获取的字符串,对字符 ...
- python_way,day4 内置函数(callable,chr,随机验证码,ord),装饰器
python_way,day4 1.内置函数 - 下 制作一个随机验证码 2.装饰器 1.内置函数 - 下 callable() #对象能否被调用 chr() #10进制数字对应的ascii码表中的内 ...
- iOS生成本地随机验证码
原文链接:http://www.cnblogs.com/jerehedu/p/4527707.html 效果图:
- python-Day5-深入正则表达式--冒泡排序-时间复杂度 --常用模块学习:自定义模块--random模块:随机验证码--time & datetime模块
正则表达式 语法: mport re #导入模块名 p = re.compile("^[0-9]") #生成要匹配的正则对象 , ^代表从开头匹配,[0 ...
- 【代码实现】PHP生成各种随机验证码
原文地址:http://www.phpthinking.com/archives/531 验证码在WEB应用中很重要,通经常使用来防止用户恶意提交表单,如恶意注冊和登录.论坛恶意灌水等.本文将通过实例 ...
随机推荐
- Android手机app启动的时候第一个Activity必须是MainActivity吗
原文:Android手机app启动的时候第一个Activity必须是MainActivity吗 Android手机APP启动的第一个Activity是可以自己设置的,不是必须的MainActivity ...
- Xamarin生成的APK大小分析
原文:Xamarin生成的APK大小分析 刚接触Xamarin都会被Xamarin的售价吓一跳,另外就是它生成的APK大小,官方也有相关的说明,这里加上自己的理解同意讲解下: 以下是针对Android ...
- Debug程序无法运行解决
说明:文章内容部分参考网络上的解决思路. 在没有安装Microsoft Visual Studio的系统上,Debug版本无法正常运行.这是由于缺少vs运行时库引起的. 以vs2005为例.开发机用v ...
- thanks使用注意事项;
router.get('/api/users/search/:key/:page', function(req, res) { if(_.isEmpty(req.params.key)) { res. ...
- 7.15 css与js 选择奇偶子元素的区别
js: 选取偶数位置的 <tr> 元素 $("tr:even") 选取奇数位置的 <tr> 元素 $("tr:odd") css 选取偶 ...
- Choosing Between ElasticSearch, MongoDB & Hadoop
An interesting trend has been developing in the IT landscape over the past few years. Many new tech ...
- Cocos2D-x权威指南:核心类成员CCNode
节点类(CCNode)是Cocos2D-x中的主要类,继承自CCObject.继承关系如图3-2所看到的. 不论什么须要画在屏幕上的对象都是节点类. 最经常使用的节点类包含场景类(CCScene).布 ...
- 2013年 ACM 有为杯 Problem I (DAG)
有为杯 Problem I DAG 有向无环图 A direct acylic graph(DAG),is a directed graph with no directed cycles . T ...
- poj2388 高速排序 模板题
/** \brief poj2388 * * \param date 2014/8/5 * \param state AC * \return memory time * qsort 784K 110 ...
- 如何给Ubuntu 安装Vmware Tools
http://jingyan.baidu.com/article/3065b3b6e8dedabecff8a435.html