注册了帐号好几久,都没发过一点东西,今天发个,.NET环境下的验证码控件for web form。
(效果图)
John.Controls.ValidateCode2V for .NET 1.1 beta1 (←点击下载)
John.Controls.ValidateCode2V for .NET 2.0 beta1 (←点击下载)
先发个试用版本,虽说是试用,但也没任何限制,只是for .NET 1.1的版本中
1public string Code
2 {
3 get
4 {
5 string text = (string)this.ViewState["Code"];
6 if (text != null)
7 {
8 return text;
9 }
10 return string.Empty;
11 }
12 private set
13 {
14 this.ViewState["Code"] = value;
15 }
16 }
2 {
3 get
4 {
5 string text = (string)this.ViewState["Code"];
6 if (text != null)
7 {
8 return text;
9 }
10 return string.Empty;
11 }
12 private set
13 {
14 this.ViewState["Code"] = value;
15 }
16 }
不支持private set,还望各位达人指点。源代码就懒得发了,包没加密也没混淆,用Reflector看比看我的代码都清晰。
使用方法,把John.Controls.ValidateCode2V.dll文件放到网站项目的bin文件夹中,对其添加引用(至于如何添加大家可以baidu/google),然后在工具栏的地方右键“选择项”,点“浏览”选择刚刚放在bin文件夹的John.Controls.ValidateCode2V.dll文件既可像普通控件一样使用。
下面是拉到页面后生成的代码
<JohnControls:ValidateCode ID="ValidateCode1" runat="server" />
用的不是Cooike也不是Session保存生成的验证码,而用了ViewState,个人感觉这样更加符合.NET的编程风格。
因为用的是事件触发机制,所以在页面cs文件里的Page_Load事件添加以下代码。
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
ValidateCode1.ChangeCode();
}
}
{
if (!IsPostBack)
{
ValidateCode1.ChangeCode();
}
}
运行前请在根目录处新建一个temp的文件夹供放临时文件用,temp是默认的,可以通过设置控件的ImageURLPath属性改变文件夹名。