您的位置:首页 > 其它

验证码

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");
}





生成验证码:

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})"/>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: