截止2004年12月16日 |
本站源码总量(商业源码除外)RAR压缩为 4,206,733 KB。其中免费源码为 1,124,495 KB,会员源码为 3,082,238 KB!
C/C++ |
129,555 KB |
Delphi |
1,258,381 KB |
Java |
120,937 KB |
.Net |
36,886 KB |
PowerBuilder |
954,525 KB |
Visual Basic |
923,454 KB |
ASP |
259,795 KB |
JSP |
4,987 KB |
其他 |
94,723 KB |
|
|
Asp.net(C#)实现验证码功能 |
|
新建一个专门用来创建验证码图片的页面ValidateCode.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="ValidateCode.aspx"></asp:Image>
|
|
|
文章出处: |
|
发表时间:2004-11-22 23:04:21 |
共1条数据记录,分1页显示 上一页 < [1] > 下一页 |
|