您的位置:首页 > 编程语言 > ASP

Asp.net验证码的生成

2012-05-02 21:49 369 查看
public partial class Yanzhengma: System.Web.UI.Page

{

protected void Page_Load(object sender, EventArgs e)

{

CreateYanzhengmaImage(GenerateYanzhengma());//用于测试用的生成的四个数字

}

protected string GenerateYangzhengma()

{

int number;//随机数

string Yangzhengma=string.Empty;//返回的字符串

Random rnd = new Random();

for (int i = 0; i < 4; i++)

{

number = rnd.Next(10);//随机生成的数字

Yanzhengma += number.ToString();

}

Response.Cookies.Add(new HttpCookie("Yanzhengma",Yanzhengma));//添加一个cookies 共享的全局变量

return Yanzhengma;

}

protected void CreateYanzhengmaImage(string Yanzhengma)

{

Bitmap bmp = new Bitmap(100, 50);//自定义图形

Graphics g = Graphics.FromImage(bmp);//利用图形来创建绘图面板

Random rnd = new Random();//随机生成

g.Clear(Color.White);//设置背景的颜色为空

//绘制背景 噪音线

for (int i = 0; i < 3; i++)

{

int x1 = rnd.Next(100);

int y1 = rnd.Next(50);

int x2 = rnd.Next(100);

int y2 = rnd.Next(50);

g.DrawLine(new Pen(Color.RosyBrown), x1, y1, x2, y2);//图形的绘制

}

//在图形中绘制字符串

g.DrawString(GenerateYanzhengma(),new Font("Arial",24,FontStyle.Regular),new LinearGradientBrush(new Rectangle(0,0,100,50),Color.Pink,Color.Peru,1.2f,true),2,2);

//设置高亮的像素点

for (int i = 0; i < 100; i++)

{

int x1 = rnd.Next(100);

int y1 = rnd.Next(50);

bmp.SetPixel(x1,y1,Color.FromArgb(rnd.Next(255),rnd.Next(255),rnd.Next(255)));

}

//内存流

MemoryStream ms = new MemoryStream();

//图片的保存

bmp.Save(ms,ImageFormat.Gif);

//清除网页的内容

Response.ClearContent();

Response.ContentType="image/Gif";

Response.BinaryWrite(ms.ToArray());//以二进制的方式写文件

}

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