为了正常的体验网站,请在浏览器设置里面开启Javascript功能!

用C_实现随机验证码

2018-01-15 5页 doc 35KB 14阅读

用户头像

is_841159

暂无简介

举报
用C_实现随机验证码用C_实现随机验证码 tr> 1 验证码基本原理 验证码包括两步, ,1, 生成随机验证码 ,用于显示验证码 img 控 件 的 src 属 性 指 向 img.asp,x 验证码由服务器端随机生成 , 通常由数字、 字母或特殊onclick=" this.src=this.src+'?'" 语句 用于实现了客户端无刷新更 字符组成, 一般存储在 Session变量中 。 。 换验证码功能,2, 发送至客户端 用 Session " ( Code") 变量存储验证 码 , 在 default.aspx的 而 且 为端 ,...
用C_实现随机验证码
用C_实现随机验证码 tr> 1 验证码基本原理 验证码包括两步, ,1, 生成随机验证码 ,用于显示验证码 img 控 件 的 src 属 性 指 向 img.asp,x 验证码由服务器端随机生成 , 通常由数字、 字母或特殊onclick=" this.src=this.src+'?'" 语句 用于实现了客户端无刷新更 字符组成, 一般存储在 Session变量中 。 。 换验证码功能,2, 发送至客户端 用 Session " ( Code") 变量存储验证 码 , 在 default.aspx的 而 且 为端 ,验证码一般都附着在一张图片上发送至客户 Page_Load事件中与用户输入的文 本进行比较 , 从而达到验证 。 用户输入的目的了防止序自动识别, 一般还要为图片加上背景噪声线、 前景噪 点和图像扭曲等效果。 img.aspx页面用于产生验证码和 发送至客户端的图片, 设 , 代码全部在 img.aspx.cs文件中 , 计器中不需要任何代码 2 C# 实现验证码 using System.Drawing; 在 Visual Studio 2005中新 建一个 Web网 站, 默认启动页 using System.Drawing.Drawing2D; default.aspx 。 再添加一个名为 img.aspx 作为用户身份认证页面using System.IO; 的 Web窗 体, 这个文件专门用于产生验证码并将它 附 着 在 一 public partial class img : System.Web.UI.Page 张图片上显示在 default.aspx 。 页面上{ protected void Page_Load(objectsender, EventArgs e) 生成用户登录在 default.aspx的设 计器中加入如下代码 , { 界面, 如图 1 所示。 //验证码长度为 6 this.CreateImg(this.GenRndCode(6)); } //产生验证码的函数,参数为验证码的长度 private string GenRndCode(inti_lenght) { //验证码文本由英文字母,含大小写,和数字组成 string str_source = "vR51Cjqr2opA93Bst84FzG PXdef6ZQJaD0ESi7lmUOLWnYbTwxMKNghcVHIkuy"; 图 1 用户认证页面 char[] chr_source = str_source.ToCharArray(); string str_code = ""; Random rnd=new Random(); for (int i = 0; i str_code = str_code + " " + chr_source [rnd.Next(0, 项出现如图 2 所示。 图 3 图 2 通过以上步骤就实现了 JSP、 Ajax、 Oracle存 储 过 程 三 级 动态级联, 希望通过此文能给程序开发人员提供帮助, 能起到 , 菜单名称列表项出现如图 3 所示。 选择 “员工管理” 后抛砖引玉的作用。 这样通过选择不同的系统, 模块名称列表就会显示该系统 所对应的模块, 进而选择不同的模块, 菜单名称列表就会显示 ,收 稿 日 期 , 2012-02-08, 该模块对应的菜单, 从而实现了三级动态级联。 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ,上接第 67 页, //设置字体 } Font font = new Font ("Times New Roman", 20, return str_code; (System.Drawing.FontStyle.Bold)); } //设置渐变画刷,由红至蓝, //生成包含验证码的函数,参数为已生成的验证码LinearGradientBrush LGbrush= new LinearGradient private void CreateImg(stringstr_code) Brush (new Rectangle (0, 0, x, y), Color.Blue, Color.Red, 0, { false); //将验证码存入 Session 变量用于比对用户输入的文本//将验证码写入图片 Session["Code"]= str_code; graph.DrawString (str_code, font, LGbrush, img. Bitmap img = new Bitmap(((int) str_code.Length * 20), 30); Width / 10, img.Height / 10); Graphicsgraph = Graphics.FromImage(img); //以 GIF 格式将图片输出至浏览器 try MemoryStream ms = new MemoryStream(); { img.Save(ms, System.Drawing.Imaging.ImageFor //清空并用白色背景填充 mat.Gif); graph.Clear(Color.White); Response.ClearContent(); int x = img.Width; Response.ContentType= "image/Gif"; int y = img.Height; Response.BinaryWrite(ms.ToArray()); //绘制灰色背景噪声线} Random rnd = new Random(); catch for (int i = 0; i < 30; i++) { { graph.Dispose(); int x1 = rnd.Next(x); img.Dispose(); int y1 = rnd.Next(y); } int x2 = rnd.Next(x); } int y2 = rnd.Next(y); 在 img.aspx页面 的 Page_Load事件中 , 调用函数 CreateImg graph.DrawLine(new Pen(Color.Gray),x1, y1, x2, y2); () 即可生成验证码。 } 用户还可以根据自己的需要 指 定 文 本 、 字 体 、 大 小 、 颜 //绘制黄色前景噪点色、 扭曲相位和幅度等参数, 实现不同效果的验证码。 for (int i = 0; i < 200; i++) ,收 稿 日 期 , 2012-04-01, { graph.DrawRectangle(newPe n(Color.Yellow),rnd. Next(x),rnd.Next(y),1,1); } 73
/
本文档为【用C_实现随机验证码】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。 本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。 网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。

历史搜索

    清空历史搜索
    用户名,
     看不清, 
chr_source.Length)]; 换 一 张