温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

如何进行网站验证码制作

发布时间:2022-01-11 16:01:12 来源:亿速云 阅读:165 作者:柒染 栏目:编程语言

这篇文章给大家介绍如何进行网站验证码制作,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。

asp.net验证码制作

using System;

using System.IO;

using System.Drawing;

using System.Drawing.Imaging;

using System.Text;

using System.Collections;

using System.Web;

using System.Web.UI;

using System.Web.UI.WebControls;

using System.Web.UI.WebControls.WebParts;

using System.Web.UI.HtmlControls; 

namespace WebApplication1

{

    public partial class yzm : System.Web.UI.Page

    {

        protected void Page_Load(object sender, EventArgs e) 

string chkCode = string.Empty; 

//颜色列表,用于验证码、噪线、噪点 

Color[] color ={ Color.Black, Color.Red, Color.Blue, Color.Green, Color.Orange, Color.Brown, Color.Brown, Color.DarkBlue }; 

//字体列表,用于验证码 

string[] font ={ "Times New Roman", "MS Mincho", "Book Antiqua", "Gungsuh", "PMingLiU", "Impact" }; 

//验证码的字符集,去掉了一些容易混淆的字符 

char[] character ={ '2', '3', '4', '5', '6', '8', '9', 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'J', 'K', 'L', 'M', 'N', 'P', 'R', 'S', 'T', 'W', 'X', 'Y' }; 

Random rnd = new Random(); 

//生成验证码字符串 

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

chkCode += character[rnd.Next(character.Length)]; 

}

//用session对象存储验证码

Session["name"] = chkCode;

Bitmap bmp = new Bitmap(100, 40); 

Graphics g = Graphics.FromImage(bmp); 

g.Clear(Color.White); 

//画噪线 

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

int x1 = rnd.Next(100); 

int y1 = rnd.Next(40); 

int x2 = rnd.Next(100); 

int y2 = rnd.Next(40); 

Color clr = color[rnd.Next(color.Length)]; 

g.DrawLine(new Pen(clr), x1, y1, x2, y2); 

//画验证码字符串 

for (int i = 0; i < chkCode.Length; i++) 

string fnt = font[rnd.Next(font.Length)]; 

Font ft = new Font(fnt, 18); 

Color clr = color[rnd.Next(color.Length)]; 

g.DrawString(chkCode[i].ToString(), ft, new SolidBrush(clr), (float)i * 20 + 8, (float)8); 

//画噪点 

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

int x = rnd.Next(bmp.Width); 

int y = rnd.Next(bmp.Height); 

Color clr = color[rnd.Next(color.Length)]; 

bmp.SetPixel(x, y, clr); 

//清除该页输出缓存,设置该页无缓存 

Response.Buffer = true; 

Response.ExpiresAbsolute = System.DateTime.Now.AddMilliseconds(0); 

Response.Expires = 0; 

Response.CacheControl = "no-cache"; 

Response.AppendHeader("Pragma", "No-Cache"); 

//将验证码图片写入内存流,并将其以 "p_w_picpath/Png" 格式输出 

MemoryStream ms = new MemoryStream(); 

try 

bmp.Save(ms, ImageFormat.Png); 

Response.ClearContent(); 

Response.ContentType = "p_w_picpath/Png"; 

Response.BinaryWrite(ms.ToArray()); 

finally 

//显式释放资源 

bmp.Dispose(); 

g.Dispose(); 

    }

}

关于如何进行网站验证码制作就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI