asp.netC#验证码

上传人:飞*** 文档编号:53957768 上传时间:2018-09-06 格式:PDF 页数:12 大小:116.74KB
返回 下载 相关 举报
asp.netC#验证码_第1页
第1页 / 共12页
asp.netC#验证码_第2页
第2页 / 共12页
asp.netC#验证码_第3页
第3页 / 共12页
asp.netC#验证码_第4页
第4页 / 共12页
asp.netC#验证码_第5页
第5页 / 共12页
点击查看更多>>
资源描述

《asp.netC#验证码》由会员分享,可在线阅读,更多相关《asp.netC#验证码(12页珍藏版)》请在金锄头文库上搜索。

1、ASP.NET 验证码把最近碰到的能够用的验证码都放出来,作个记录1.GSC_WebControlLibrary 这是在网上找到的一个控件,非常好用。 但是效果不是特别好 (见下图。)虽然容易使用, 所有的属性都可以像控件一样设置,但是可用性不太高。用户不能自定义,而且看起来这个验证码效果不太好。效果:2.用一个页面生成图片,另一个页面调用,验证码存入cookie,调用时取cookie 对比验证 .这个用户就可以按自己的喜好更改效果和验证码的长度了(:效果如图:代码如下:CheckCode.aspxusing System; using System.Data; using System.Co

2、nfiguration; using System.Collections; using System.Web; using System.Web.Security; using System.Web.UI; using System.Web.UI.WebControls; using System.Web.UI.WebControls.WebParts; using System.Web.UI.HtmlControls; using System.Drawing; using System.Drawing.Drawing2D; using System.Drawing.Imaging;pub

3、lic partial class Tools_CheckCode : System.Web.UI.Page protected void Page_Load(object sender, EventArgs e) this.CreateCheckCodeImage(GenerateCheckCode();private string GenerateCheckCode() int number; char code; string checkCode = String.Empty;System.Random random = new Random();for (int i = 0; i 3.

4、用 web handler 生成图片。这个其实和前面的意思大致差不多,调用方法也基本和2 一样 ,不同的是,他的验证码是存入Session的。供学习参考。效果图如下:ValidateImageHandler.ashx % WebHandler Language=“C#“ Class=“ValidateImageHandler“ %using System; using System.Web; using System.Web.SessionState; using System.Drawing; using System.Drawing.Imaging; using System.Text;/

5、*/ / ValidateImageHandler 生成网站验证码功能/ public class ValidateImageHandler : IHttpHandler, IRequiresSessionState int intLength = 5; /长度string strIdentify = “Identify“; /随机字串存储键值,以便存储到Session中public ValidateImageHandler() /*/ / 生成验证图片核心代码/ / public void ProcessRequest(HttpContext hc) /设置输出流图片格式hc.Respons

6、e.ContentType = “image/gif“; Bitmap b = new Bitmap(200, 60); Graphics g = Graphics.FromImage(b); g.FillRectangle(new SolidBrush(Color.YellowGreen), 0, 0, 200, 60); Font font = new Font(FontFamily.GenericSerif, 48, FontStyle.Bold, GraphicsUnit.Pixel); Random r = new Random();/合法随机显示字符列表string strLett

7、ers = “abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890“; StringBuilder s = new StringBuilder(); /将随机生成的字符串绘制到图片上for (int i = 0; i / 表示此类实例是否可以被多个请求共用(重用可以提高性能) / public bool IsReusable get return true; 4. 验证码技术是为了防止暴力破解等而设定的。现在一般的网站注册等都提供验证码功能,特别是腾讯更是长长的一串。文中参考了别人的代码。有了就没有必要再写了。可以读一下。

8、不过我测试时发现了两次PageLoad的问题。注释了两句即可。同时修改了namespaces 。同时提供完整的验证说明:1 新建 VerifyCode.aspxcs 文件代码如下:复制代码代码如下: using System; using System.Collections; using System.ComponentModel; using System.Data; using System.Web; using System.Web.SessionState; using System.Web.UI; using System.Web.UI.WebControls; using Sys

9、tem.Web.UI.HtmlControls; using System.Drawing; using System.Drawing.Imaging; using System.Drawing.Text; /*/ / 页面验证码程序/ 使用:在页面中加入HTML 代码 / public partial class VerifyCode : System.Web.UI.Page . static string FontItems = new string . “Arial“, “Helvetica“, “Geneva“, “sans-serif“, “Verdana“ ; static Bru

10、sh BrushItems = new Brush . Brushes.OliveDrab, Brushes.ForestGreen, Brushes.DarkCyan, Brushes.LightSlateGray, Brushes.RoyalBlue, Brushes.SlateBlue, Brushes.DarkViolet, Brushes.MediumVioletRed, Brushes.IndianRed, Brushes.Firebrick, Brushes.Chocolate, Brushes.Peru, Brushes.Goldenrod ; static string Br

11、ushName = new string . “OliveDrab“, “ForestGreen“, “DarkCyan“, “LightSlateGray“, “RoyalBlue“, “SlateBlue“, “DarkViolet“, “MediumVioletRed“, “IndianRed“, “Firebrick“, “Chocolate“, “Peru“, “Goldenrod“ ; private static Color BackColor = Color.White; private static Pen BorderColor = Pens.DarkGray; priva

12、te static int Width = 52; private static int Height = 21; private Random _random; private string _code; private int _brushNameIndex; override protected void OnInit(EventArgs e) . / / CODEGEN: This call is required by the ASP.NET Web Form Designer. / /InitializeComponent(); /base.OnInit(e); /*/*/*/ /

13、 Required method for Designer support - do not modify / the contents of this method with the code editor. / private void InitializeComponent() . /this.Load += new System.EventHandler(this.Page_Load); /*/ / / / / public void Page_Load(object sender, System.EventArgs e) . if (!IsPostBack) . / / TODO :

14、 initialize / this._random = new Random(); this._code = GetRandomCode(); / / TODO : use Session“code“ save the VerifyCode / Session“code“ = this._code; / / TODO : output Image / this.SetPageNoCache(); this.OnPaint(); /*/*/*/ / 设置页面不被缓存/ private void SetPageNoCache() . Response.Buffer = true; Respons

15、e.ExpiresAbsolute = System.DateTime.Now.AddSeconds(-1); Response.Expires = 0; Response.CacheControl = “no-cache“; Response.AppendHeader(“Pragma“,“No-Cache“); /*/*/*/ / 取得一个4 位的随机码/ / private string GetRandomCode() . return Guid.NewGuid().ToString().Substring(0, 4); /*/*/*/ / 随机取一个字体/ / private Font GetFont() . int fontIndex = _random.Next(0, FontItems.Length); FontStyle fontStyle = GetFontStyle(_random.Next(0, 2); return new Font(FontItems

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 商业/管理/HR > 其它文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号