新建一个专门用来创建验证码图片的页面image.aspx
它的后台cs文件代码如下:
PageLoad
private void Page_Load(object sender, System.EventArgs e)
{
string checkCode = CreateRandomCode(4);
Session["CheckCode"] = checkCode;
CreateImage(checkCode);
}
其中CreateRandomCode是自定义的函数,参数代表验证码位数
private string CreateRandomCode(int codeCount)
{
string allChar = "0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,W,X,Y,Z" ;
string[] allCharArray = allChar.Split(',');
string randomCode = "";
int temp = -1;
Random rand = new Random();
for(int i = 0; i < codeCount; i++)
{
if(temp != -1)
{
rand = new Random(i*temp*((int)DateTime.Now.Ticks));
}
int t = rand.Next(35);
if(temp == t)
{
return CreateRandomCode(codeCount);
}
temp = t;
randomCode += allCharArray[t];
}
return randomCode;
}
CreateImage也是一个自定义的函数,用于生成图
private void CreateImage(string checkCode)
{
int iwidth = (int)(checkCode.Length * 11.5);
System.Drawing.Bitmap image = new System.Drawing.Bitmap(iwidth, 20);
Graphics g = Graphics.FromImage(image);
Font f = new System.Drawing.Font("Arial", 10, System.Drawing.FontStyle.Bold);
Brush b = new System.Drawing.SolidBrush(Color.White);
//g.FillRectangle(new System.Drawing.SolidBrush(Color.Blue),0,0,image.Width, image.Height);
g.Clear(Color.Blue);
g.DrawString(checkCode, f, b, 3, 3);
Pen blackPen = new Pen(Color.Black, 0);
Random rand = new Random();
for (int i=0;i<5;i++)
{
int y = rand.Next(image.Height);
g.DrawLine(blackPen,0,y,image.Width,y);
}
System.IO.MemoryStream ms = new System.IO.MemoryStream();
image.Save(ms,System.Drawing.Imaging.ImageFormat.Jpeg);
Response.ClearContent();
Response.ContentType = "image/Jpeg";
Response.BinaryWrite(ms.ToArray());
g.Dispose();
image.Dispose();
}
//g.FillRectangle(new System.Drawing.SolidBrush(Color.Blue),0,0,image.Width, image.Height);
g.Clear(Color.Blue);
这两种方法都可以改变生成图片的背景颜色
下面那个for循环用来生成一些随机的水平线
在需要用到验证码的页面添加一个<asp:Image>控件即可,但是要把ImageUrl指向生成验证码的页面
<asp:Image Runat="server" ID="ImageCheck" ImageUrl="image.aspx"></asp:Image>
image.aspx代码页面
if(Session["CheckCode"]!=null)
{
string yzm=Session["CheckCode"].ToString().ToLower();
if(this.yzm.Value.ToLower() == yzm)
{
//操作代码
}
else
{
Page.Response.Write("<script language=javascript>alert('验证码错误!');this.history.go(-1);</script>");
Page.Response.End();
}
}
分享到:
相关推荐
13.1Create .Net Code 创建.Net语言程序
Controller中调用的方式: public ActionResult CheckCode() { ValidateCode2 vCode = new ValidateCode2();... byte[] bytes = vCode.CreateImage(code); return File(bytes, @"image/gif"); }
ASP.NET实现验证码功能的aspx文件,里面包含了三个文件,CreateImage.aspx.cs包含了验证码功能的实现,前端和设计和新建的窗口文件一样没有任何改动,因为功能的实现就是通过一次又一次的加载page_load函数实现功能...
a controller to create a chart from the data table automatically .very good controller.
新建一个专门用来创建验证码图片的页面ValidateCode.aspx 它的后台cs文件代码如下: PageLoad 代码如下:private void Page_Load(object sender, System.EventArgs e) { string checkCode = CreateRandomCode(4);...
创建验证码是.Create()方法, 判断输入是.CheckSn()方法. 带源码和注释,宽度颜色的可以在源码里自己改。 VS2010开发的,需要.net Framework 4.0 的支持。
Explore advanced .NET APIs and create a basic .NET core library with dynamic code generation and metadata inspection to be used by other libraries or client applications. This book starts with the ...
when you want to create captcha image on asp.net development, can use this module.
* FastReport.Net is written in C# and contains only managed code. It is compatible with .NET Framework 2.0 and higher. .NET Framework 1.x is not supported. * Full source code is available. You can ...
ASP.NET 2.0使用Web Part创建应用程序之二(共二) 体验 .net2.0 的优雅(2) -- ASP.net 主题和皮肤 NET2.0系列介绍(一).NET 2.0 中Web 应用程序主题的切换 ASP.NET 2.0 中Web 应用程序主题的切换 2.0正式版中...
如果你想设置发送邮箱可以...学习和讨论有关asp.net mvc ,Ajax ,jquery ,html/css, xml,sqlserver ,wpf,IIS以及服务器的搭建和安全性相关技术的交流和学习。 开发环境为Visual Studio 2010,数据库为SQL Server 2008R2
共两个部分。。。 The Microsoft Expression Web Developer's Guide to ASP.NET 3.5 Learn to create ASP.NET applications using Visual Web Developer 2008.part2.rar
Create SYSTEM UserName Process For VB6
Create multithreaded applications using .NET Framework 4.5 Get introduced to .NET 4.5 parallel extensions and familiarized with .NET parallel loops Use new data structures introduced by .NET Framework...
动态创建Active控件并调用方法
The Microsoft Expression Web Developer's Guide to ASP.NET 3.5 Learn to create ASP.NET applications using Visual Web Developer 2008.part2.rar
Auto create table Anti sql injection Multiple data source Object validation Paged selector and collection Nullable support DbEntryDataSource ASP.NET 2.0 Membership support Built-in Cache ...
Stimulsoft Reports.Net is a .NET based report generator which helps you create flexible and feature rich reports. All reports are created in report designer with handy and user-friendly interface. You...
Android验证码,CreateCode,VerificationCode两个实例代码