最新发布验证码控件绝对原创Word文档格式.docx
《最新发布验证码控件绝对原创Word文档格式.docx》由会员分享,可在线阅读,更多相关《最新发布验证码控件绝对原创Word文档格式.docx(32页珍藏版)》请在冰豆网上搜索。
usingSystem.Text;
usingSystem.Web;
usingSystem.Web.UI;
usingSystem.Web.UI.WebControls;
usingSystem.Drawing.Design;
usingSystem.Drawing;
usingSystem.Collections;
usingSystem.Web.Security;
usingSystem.Drawing.Imaging;
usingSystem.Reflection;
usingSystem.Security.Cryptography;
usingSystem.IO;
usingSystem.Drawing.Text;
namespaceBlogLan.Web.Controls
{
///<
summary>
///验证码控件。
/summary>
[DefaultProperty("
CodeLength"
)]
[ToolboxData("
<
{0}:
VerificationCoderunat=server>
/{0}:
VerificationCode>
"
[DesignerAttribute(typeof(Designer.VerificationCodeDesigner))]
[Description("
验证码控件。
publicclassVerificationCode:
WebControl,IHttpHandler
privateRandomrand;
///表示数字字符集。
publicstaticchar[]NumericCharset=newchar[]{'
2'
'
3'
4'
5'
6'
7'
};
///表示大写英文字母字符集。
publicstaticchar[]UppercaseCharset=newchar[]{'
A'
B'
D'
E'
F'
G'
H'
J'
K'
M'
N'
Q'
R'
T'
W'
X'
Y'
///表示小写英文字母字符集。
publicstaticchar[]LowercaseCharset=newchar[]{'
a'
b'
d'
e'
f'
g'
h'
i'
j'
k'
m'
n'
r'
t'
u'
w'
x'
y'
///表示100个最常用简体中文汉字字符集。
publicstaticchar[]ChineseCharset=newchar[]{'
的'
'
一'
是'
在'
不'
了'
有'
和'
人'
这'
'
中'
大'
为'
上'
个'
国'
我'
以'
要'
他'
时'
来'
用'
们'
生'
到'
作'
地'
于'
出'
就'
分'
对'
成'
会'
可'
主'
发'
年'
动'
同'
工'
也'
能'
下'
过'
子'
说'
产'
种'
面'
而'
方'
后'
多'
定'
行'
学'
法'
所'
民'
得'
经'
十'
三'
之'
进'
着'
等'
部'
度'
家'
电'
力'
里'
如'
水'
化'
高'
自'
二'
理'
起'
小'
物'
现'
实'
加'
量'
都'
两'
体'
制'
机'
当'
使'
点'
从'
业'
本'
};
///默认构造函数。
publicVerificationCode()
:
base(HtmlTextWriterTag.Img)
rand=newRandom(unchecked((int)DateTime.Now.Ticks));
}
privatebyte[]GetMachineKey()
try
objectmachineKeyConfig=HttpContext.Current.GetSection("
system.web/machineKey"
);
TypemachineKeyType=machineKeyConfig.GetType().Assembly.GetType("
System.Web.Configuration.MachineKey"
//得到System.Web.Configuration.MachineKey类型
BindingFlagsbf=BindingFlags.NonPublic|BindingFlags.Static;
//设置绑定标志
MethodInfobyteArrayToHexString=machineKeyType.GetMethod("
ByteArrayToHexString"
bf);
SymmetricAlgorithmalgorithm=(SymmetricAlgorithm)machineKeyType.GetField("
s_oDes"
bf).GetValue(machineKeyConfig);
Byte[]decryptionKey=algorithm.Key;
returndecryptionKey;
catch
returnnewbyte[]{77,236,150,65,103,91,220,81,
49,37,48,208,73,85,150,250,
131,25,228,234,2,155,26,167};
///获取或设置生成的验证字符个数。
[DefaultValue(4)]
[Bindable(true)]
获取或设置生成的验证字符个数。
publicintCodeLength
get
if(this.ViewState["
]!
=null)
return(int)this.ViewState["
];
return4;
set
this.ViewState["
]=value;
///获取或设置生成的缩略图的图片格式。
[Bindable(false)]
[DefaultValue(VerificationCodeImageFormat.Gif)]
获取或设置生成的缩略图的图片格式。
publicVerificationCodeImageFormatImageFormat
ImageFormat"
return(VerificationCodeImageFormat)this.ViewState["
returnVerificationCodeImageFormat.Gif;
///获取或设置进行验证时是否区分大小写。
[DefaultValue(false)]
获取或设置进行验证时是否区分大小写。
publicboolCaseSensitive
CaseSensitive"
return(bool)this.ViewState["
returnfalse;
///获取或设置图片背景色。
[DefaultValue(typeof(Color),"
Black"
),Description("
获取或设置图片背景色。
publicoverrideColorBackColor
if(!
base.BackColor.IsEmpty)
returnbase.BackColor;
returnColor.Black;
base.BackColor=value;
///获取或设置前景颜色,通常就是图片上显示的文字颜色。
White"
获取或设置前景颜色,通常就是图片上显示的文字颜色。
publicoverrideColorForeColor
base.ForeColor.IsEmpty)
returnbase.ForeColor;
returnColor.White;
base.ForeColor=value;
///获取或设置Jpeg图片质量。
数值在10-100之间。
[DefaultValue(80),Description("
获取或设置Jpeg图片质量。
publicintJpegQualityPercentage
JpegQualityPercentage"
intjqp=(int)this.ViewState["
if(jqp>
100)
return100;
if(jqp<
10)
return10;
returnjqp;
return80;
///获取或设置图像噪音干扰的颜色。
获取或设置图像噪音干扰的颜色。
publicColorNoiseColor
NoiseColor"
return(Color)this.ViewState["
///获取或设置噪音渲染位置。
[DefaultValue(VerificationCodeNoiseRenderMode.Back),Description("
获取或设置噪音渲染位置。
publicVerificationCodeNoiseRenderModeNoiseRenderMode
NoiseRenderMode"
return(VerificationCodeNoiseRenderMode)this.ViewState["
returnVerificationCodeNoiseRenderMode.Back;
///获取或设置噪音类型。
[DefaultValue(VerificationCodeNoiseType.Spot),Description("
获取或设置噪音类型。
publicVerificationCodeNoiseTypeNoiseType
NoiseType"
return(VerificationCodeNoiseType)this.ViewState["
returnVerificationCodeNoiseType.Spot;
this.View