ASP.NET验证码控件(附详细用法)
更新时间:2023-10-09 21:50:01 阅读量: 综合文库 文档下载
- ASP.NET验证码控件推荐度:
- 相关推荐
共享一款ASP.NET验证码控件(附详细用法)
最近在完善我的毕业设计——ASP.NET(C#)实现的三层构架的二手交易系统,觉得有必要加上验证码,这样网站的安全性会提升一些。于是利用百度、谷歌反复搜索,终于找到了一款比较牛叉的验证码控件。原作者不详,这里附上一个地址>>>。程序我做了一些
小小的修改。
按原文所说的操作,根本编译不了
。原文的用法可以查看上面的链接地址,这里我
贴出我自己的用法。我将两个类整合到一个.cs文件中了(这里命名为AuthCode.cs),程
序如下:
using System;
using System.Collections.Generic; using System.ComponentModel;
using System.Text; using System.Web;
using System.Web.UI.WebControls;
using System.Web.UI; using System.Web.SessionState;
using System.Drawing; using System.IO;
namespace AuthCode
{
[ToolboxData(\)]
public class AuthCode : WebControl
{
/// 〈summary> /// 获得验证码的值 /// 〈/summary>
/// 〈returns>验证码〈/returns>
public string GetValue()
{
return HttpContext.Current.Session[\].ToString();
}
[Bindable(true)] [Category(\)] [Description(\验证码字符长度\)]
[DefaultValue(\)] [Localizable(true)]
//长度
internal static int mySize;
public int MySize
{
get { return AuthCode.mySize; }
set {
AuthCode.mySize = value;
} }
public AuthCode()
: base(HtmlTextWriterTag.Img)//重写父类的构造(输出流的HTML标记)
{ }
protected override void AddAttributesToRender(HtmlTextWriter writer)
{
base.AddAttributesToRender(writer);//将要输出的的HTML标签的属性和样式添
加到指定的 HtmlTextWriter中
writer.AddStyleAttribute(HtmlTextWriterStyle.Cursor, \);//添加样式
writer.AddAttribute(\, \);//添加js
VerifyImg.jd
writer.AddAttribute(HtmlTextWriterAttribute.Src, \);
writer.AddAttribute(\, \点击刷新\);
} }
public class AuthCodeHttpHander : IHttpHandler, IRequiresSessionState
{
///
///
///
private string GetRandomNumberString(int codeCount)
{
string strChoice =
\;
string[] strResult = strChoice.Split(new Char[] { ',' });
string strReturn = \; Random rnd = new Random(); for (int i = 0; i < codeCount; i++)
{
int j = rnd.Next(strResult.Length);//随机数不能大于数组的长度
strReturn = strReturn + strResult[j].ToString();
}
return strReturn;
}
private Color GetColor()
{
return Color.Black;
}
private Bitmap CreateImage(string str_AuthCode)
{
int width = str_AuthCode.Length * 13;
int height = 20;
Random rad = new Random(); Bitmap bmp = new Bitmap(width, height);
Graphics grp = Graphics.FromImage(bmp);// 在图片上绘制图形
grp.Clear(Color.White);//填充bmp的背景色
grp.DrawRectangle(new Pen(Color.Red, 1), 0, 0, width - 1, height - 1);//绘制边框
int num = width * height;
for (int i = 0; i < num; i+=3)//在图片的指定坐标上画上有颜色的圆点
{
int x = rad.Next(width); int y = rad.Next(height); int r = rad.Next(255); int g = rad.Next(255); int b = rad.Next(255); Color c = Color.FromArgb(r, g, b);
bmp.SetPixel(x, y, c);//在图片的指定坐标上画上有颜色的圆点
}
Font f = new Font(\宋体\, 12, FontStyle.Bold);//定义字体
Brush br = new SolidBrush(Color.Black);//定义画笔的颜色及字体的颜色
for (int i = 0; i < str_AuthCode.Length; i++)
{
string s = str_AuthCode.Substring(i, 1);//单个单个的将字画到图片上 Point p = new Point(i * 12 + rad.Next(3), rad.Next(3) + 1);//字体出现的位置
(坐标)
grp.DrawString(s, f, br, p);//绘制字符串
} grp.Dispose(); return bmp;//返回
}
///
/// 是否可以处理远程的HTTP请求
/// public bool IsReusable
{
get { return true; }
}
///
/// 将验证码图片发送给WEB浏览器
///
///
{
int size = AuthCode.mySize; //Int32.Parse((String)context.Session[\ MemoryStream ms = new MemoryStream(); // 创建内存流(初始长度为0 自动扩
充)
string NumStr = GetRandomNumberString(size);// 获得验证码字符 context.Session.Add(\, NumStr);//将验证码字符保存到session里面
Bitmap theBitmap = CreateImage(NumStr);// 获得验证码图片
theBitmap.Save(ms, System.Drawing.Imaging.ImageFormat.Jpeg);//将位图写入
内存流
context.Response.ClearContent(); //清除缓冲区里的所有内容输出 context.Response.ContentType = \; //需要输出图象信息 要修改
HTTP头
context.Response.BinaryWrite(ms.ToArray()); //将内存流写入HTTP输出流
theBitmap.Dispose(); //释放资源
ms.Close();//释放资源 ms.Dispose();//释放资源 context.Response.End();
} } }
我是这样使用这个验证码控件的:
1:修改web.config 文件
在
正在阅读:
ASP.NET验证码控件(附详细用法)10-09
生产效率计算方法02-28
乡镇应急规章制度12-12
社会事业单位员工入党思想汇报07-25
复习题选择改错简答题10-18
信息安全基础知识题集04-17
少儿艺术学校的各部门工作职责03-08
深入分析Linux操作系统深度安全加固08-05
- 计算机试题
- 【2012天津卷高考满分作文】鱼心人不知
- 教育心理学历年真题及答案--浙江教师资格考试
- 20180327-第六届“中金所杯”全国大学生金融知识大赛参考题库
- 洪林兴达煤矿2018年度水情水害预测预报
- 基本要道讲义
- 机电设备安装试运行异常现象分析与对策
- 《有机化学》复习资料-李月明
- 非常可乐非常MC2--非常可乐广告策划提案 - 图文
- 2011中考数学真题解析4 - 科学记数法(含答案)
- 企业人力资源管理师三级07- 09年真题及答案
- 基于单片机的光控自动窗帘控制系统设计说明书1 - 图文
- 20160802神华九江输煤皮带机安装方案001
- (共53套)新人教版一生物必修2(全册)教案汇总 word打印版
- 2014行政管理学总复习
- 中国银监会关于加强地方政府融资平台贷款风险监管的指导意见
- 民宿酒店核心竞争与研究
- 游园活动谜语大全2012
- 河南省天一大联考2016届高三英语5月阶段性测试试题(六)(A卷)
- 小型超市管理系统毕业论文详细设计4
- 控件
- 用法
- 验证
- 详细
- ASP
- NET