验证码
2016-06-03 12:35
267 查看
Acion:
publicclassAuthenticationController:Controller
{
///<summary>
///验证码
///</summary>
///<returns></returns>
publicFileResultVerificationCode()
{
System.IO.MemoryStreamms=newBLL().GenerateVerificationCode();
byte[]bytes=ms.ToArray();
returnFile(bytes,@"image/gif");
}
}
生成验证码:
View:
publicclassAuthenticationController:Controller
{
///<summary>
///验证码
///</summary>
///<returns></returns>
publicFileResultVerificationCode()
{
System.IO.MemoryStreamms=newBLL().GenerateVerificationCode();
byte[]bytes=ms.ToArray();
returnFile(bytes,@"image/gif");
}
}
生成验证码:
publicclassBLL
{
///<summary>
///生成验证码代码
///</summary>
publicSystem.IO.MemoryStreamGenerateVerificationCode()
{
stringcheckCode=GenCode(5);//产生5位随机字符
//todo:将字符串保存到Session中,以便需要时进行验证
using(Bitmapimage=newBitmap(70,22))
{
using(Graphicsg=Graphics.FromImage(image))
{
//生成随机生成器
Randomrandom=newRandom();
//清空图片背景色
g.Clear(Color.White);
//画图片的背景噪音线
inti;
for(i=0;i<25;i++)
{
intx1=random.Next(image.Width);
intx2=random.Next(image.Width);
inty1=random.Next(image.Height);
inty2=random.Next(image.Height);
g.DrawLine(newPen(Color.Silver),x1,y1,x2,y2);
}
Fontfont=newSystem.Drawing.Font("Arial",12,(System.Drawing.FontStyle.Bold));
System.Drawing.Drawing2D.LinearGradientBrushbrush=newSystem.Drawing.Drawing2D.LinearGradientBrush(newRectangle(0,0,image.Width,image.Height),Color.Blue,Color.DarkRed,1.2F,true);
g.DrawString(checkCode,font,brush,2,2);
//画图片的前景噪音点
g.DrawRectangle(newPen(Color.Silver),0,0,image.Width-1,image.Height-1);
System.IO.MemoryStreamms=newSystem.IO.MemoryStream();
image.Save(ms,System.Drawing.Imaging.ImageFormat.Gif);
returnms;
}
}
}
///<summary>
///产生随机字符串
///</summary>
///<paramname="num">随机出几个字符</param>
///<returns>随机出的字符串</returns>
privatestringGenCode(intnum)
{
stringstr="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ";
char[]chastr=str.ToCharArray();
stringcode="";
Randomrd=newRandom();
inti;
for(i=0;i<num;i++)
{
code+=str.Substring(rd.Next(0,str.Length),1);
}
returncode;
}
}
View:
<imgsrc="@Url.Action("VerificationCode","Authentication",new{time=DateTime.Now.Millisecond})"/>
相关文章推荐
- Visual Studio Team Services使用教程【6】:Readers tfs组checkin权限修改
- C语言的指针(进阶篇章之二)
- if 与 while
- 软件工程课程建议
- Visual Studio Team Services使用教程【5】:Readers tfs组成员添加
- 性能加速 - 开启opcache
- 自由读书会第一集总结
- iOS开发UI篇—UITabBarController简单介绍
- UML类图的几个关系自我总结,(入门级)
- Java虚拟机结构分析
- sdut 无尽走廊
- datatable 转换json
- MongoDB学习笔记
- Struts2.5版本方法无法使用通配符问题
- 软件工程课之建议
- PHP libevent扩展安装
- 献给那些怀揣IT梦想的北漂一族
- JDBC -----对结果集的系列操作
- JQuery AJAX 解析获得的JSON数据
- 【51CTO学院三周年】感谢51CTO让我有新的事业和目标