专注于互联网--专注于架构

最新标签
网站地图
文章索引
Rss订阅

首页 »DotNet » 验证码代码:c#写的一个验证码代码 »正文

验证码代码:c#写的一个验证码代码

来源: 发布时间:星期四, 2009年2月12日 浏览:696次 评论:0


前面发表过个验证码但感觉不好今天在发表带噪点看起来更专业
前台CheckCode.aspx
<%@Pagelanguage=\"c#\"Inherits=\"Guestbook.CheckCode\"CodeFile=\"CheckCode.aspx.cs\"%>
<!DOCTYPEHTMLPUBLIC\"-//W3C//DTDHTML4.0Transitional//EN\">
<HTML>
<HEAD>
<title>CheckCode</title>
<metaname=\"GENERATOR\"Content=\"MicrosoftVisualStudio.NET7.1\">
<metaname=\"CODE_LANGUAGE\"Content=\"C#\">
<metaname=\"vs_defaultClientScript\"content=\"JavaScript\">
<metaname=\"vs_targetSchema\"content=\"http://schemas.microsoft.com/ellisense/ie5\">
</HEAD>
<body>
<formid=\"Form1\"method=\"post\"runat=\"server\">
<FONTface=\"宋体\"></FONT>
</form>
</body>
</HTML>

后台CheckCode.aspx.cs
using;
using.Collections;
using.ComponentModel;
using.Data;
using.Drawing;
using.Web;
using.Web.SessionState;
using.Web.UI;
using.Web.UI.WebControls;
using.Web.UI.HtmlControls;



Guestbook
...{
/**////<summary>
///页面检查生成Session[\"CheckCode\"]
///</summary>
publicpartialCheckCode:.Web.UI.Page
...{

protectedvoidPage_Load(objectsender,.EventArgse)
...{
this.CreateCheckCodeImage(GenerateCheckCode);
}

privateGenerateCheckCode [Page]
...{
number;
charcode;
checkCode=String.Empty;

.Randomrandom=Random;

for(i=0;i<5;i)
...{
number=random.Next;

(number%20)
code=(char)(’0’+(char)(number%10));

code=(char)(’A’+(char)(number%26));

checkCodecode.;
}

//Response.Cookies.Add(HttpCookie(\"CheckCode\",checkCode));
Session[\"CheckCode\"]=checkCode;
checkCode;
}

privatevoidCreateCheckCodeImage(checkCode)
...{


(checkCodenull||checkCode.TrimString.Empty)
;

.Drawing.Bitmapimage=.Drawing.Bitmap(()Math.Ceiling((checkCode.Length*12.5)),22); [Page]
Graphicsg=Graphics.FromImage(image);

try
...{
//生成随机生成器
Randomrandom=Random;

//清空图片背景色
g.Clear(Color.White);

//画图片背景噪音线
for(i=0;i<25;i)
...{
x1=random.Next(image.Width);
x2=random.Next(image.Width);
y1=random.Next(image.Height);
y2=random.Next(image.Height);

g.DrawLine(Pen(Color.Silver),x1,y1,x2,y2);
}

Fontfont=.Drawing.Font(\"Arial\",12,(.Drawing.FontStyle.Bold|.Drawing.FontStyle.Italic));
.Drawing.Drawing2D.LinearGradientBrushbrush=.Drawing.Drawing2D.LinearGradientBrush(Rectangle(0,0,image.Width,image.Height),Color.Blue,Color.DarkRed,1.2f,true); [Page]
g.DrawString(checkCode,font,brush,2,2);

//画图片前景噪音点
for(i=0;i<100;i)
...{
x=random.Next(image.Width);
y=random.Next(image.Height);

image.SetPixel(x,y,Color.FromArgb(random.Next));
}

//画图片边框线
g.DrawRectangle(Pen(Color.Silver),0,0,image.Width-1,image.Height-1);

.IO.MemoryStreamms=.IO.MemoryStream;
image.Save(ms,.Drawing.Imaging.ImageFormat.G);


Response.ClearContent;
Response.ContentType=\"image/G\";
Response.BinaryWrite(ms.ToArray);
}
finally
...{
g.Dispose; [Page]
image.Dispose;
}
}


}
}

-----------------------------------
页面Default.aspx
<tr>
<tdalign=\"center\"height=\"30\">验证码</td>
<tdstyle=\"height:30px\"><inputname=\"Txt_imgCode\"type=\"text\"id=\"Txt_imgCode\"size=\"5\"maxlength=\"5\"tabindex=\"3\"/>
<imgid=\"CodeImg\"onclick=\"this.src=’CheckCode.aspx’\"src=\"CheckCode.aspx\"/>
<inputonclick=\"document.getElementById(’CodeImg’).src=’CheckCode.aspx?tmp=’+Math.random\"
type=\"button\"value=\"验证码\"name=\"Btn_Re\"/></td>
</tr>

的后在后台对Session[\"CheckCode\"]..ToLower进行验证就行了来判断验证码是否正确
希望对大家有帮助
6

相关文章

读者评论

发表评论

  • 昵称:
  • 内容: