[原创]共享一款ASP.NET验证码控件(附详细用法)

来源:互联网 发布:js基础知识总结csdn 编辑:程序博客网 时间:2024/06/03 20:24

  首先声明,此博文为博主原创。本人非常提倡资源共享,如有转载请写明作者和出处,谢谢合作。

 

    在最初决定搞Web开发的时候就思考过网站上的验证码是怎么实现的,后来在一些专业书籍上也看过一些介绍,但并没有自己去实现过。在www.51aspx.com上下载了一些源码研究过,感觉都不是很满意,一直都想找一个可以直接从工具箱拖出来用的验证码控件,点击可刷新换图的那种,那样多方便啊

 

    最近在完善我的毕业设计——ASP.NET(C#)实现的三层构架的二手交易系统,觉得有必要加上验证码,这样网站的安全性会提升一些。于是利用百度、谷歌反复搜索,终于找到了一款比较牛叉的验证码控件。原作者不详,这里附上一个地址>>>。程序我做了一些小小的修改。

 

    按原文所说的操作,根本编译不了。原文的用法可以查看上面的链接地址,这里我贴出我自己的用法。我将两个类整合到一个.cs文件中了(这里命名为AuthCode.cs),程序如下:(下半部分,在后一篇文章“[原创]共享一款ASP.NET验证码控件(附详细用法)中”里已全部列出)

 

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(
"<{0}:AuthCode runat=server></{0}:AuthCode>")]
   
public class AuthCode : WebControl
    {
       
/// 〈summary>
       
/// 获得验证码的值
       
/// 〈/summary>
       
/// 〈returns>验证码〈/returns>
        public string GetValue()
        {
           
return HttpContext.Current.Session["value"].ToString();
        }


        [Bindable(
true)]
        [Category(
"Appearance")]
        [Description(
"验证码字符长度")]
        [DefaultValue(
"ss")]
        [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, "pointer");//添加样式
     
            writer.AddAttribute(
"onclick", "this.src='img.jd?id='+Math.random()");//添加js VerifyImg.jd
            writer.AddAttribute(HtmlTextWriterAttribute.Src,
"img.jd");
            writer.AddAttribute(
"alt", "点击刷新");
        }

   

}

 

更多内容见我的新浪博客的另两篇。

http://blog.sina.com.cn/s/blog_4c59c08a0100ck7r.html

 

原创粉丝点击