网络编程 | 站长之家 | 网页制作 | 图形图象 | 操作系统 | 冲浪宝典 | 软件教学 | 网络办公 | 邮件系统 | 网络安全 | 认证考试 | 系统进程
Firefox | IE | Maxthon | 迅雷 | 电驴 | BitComet | FlashGet | QQ | QQ空间 | Vista | 输入法 | Ghost | Word | Excel | wps | Powerpoint
asp | .net | php | jsp | Sql | c# | Ajax | xml | Dreamweaver | FrontPages | Javascript | css | photoshop | fireworks | Flash | Cad | Discuz!
当前位置 > 网站建设学院 > 网络编程 > ASP.NET技巧
Tag:注入,存储过程,分页,安全,优化,xmlhttp,fso,jmail,application,session,防盗链,stream,无组件,组件,md5,乱码,缓存,加密,验证码,算法,cookies,ubb,正则表达式,水印,索引,日志,压缩,base64,url重写,上传,控件,Web.config,JDBC,函数,内存,PDF,迁移,结构,破解,编译,配置,进程,分词,IIS,Apache,Tomcat,phpmyadmin,Gzip,触发器,socket
网络编程:ASP教程,ASP.NET教程,PHP教程,JSP教程,C#教程,数据库,XML教程,Ajax,Java,Perl,Shell,VB教程,Delphi,C/C++教程,软件工程,J2EE/J2ME,移动开发
本月文章推荐
.ASP.NET中使用IFRAME建立类Modal.
.巧用VS2005解决VS2005网站发布不.
.通过数据捆绑将数据添加到ASP.NE.
.DataGrid同时具有分页和排序功能.
.使用ASP.NET Atlas编写显示真实进.
.NET环境下水晶报表使用总结.
.深度解析ASP.NET2.0中的Callback.
.借助WebService实现多线程上传文.
.在ASP.NET中使用SQL的IN操作.
.asp.net自动执行任务-解决应用池.
.对.NET Framework 反射的反思.
..Net中常见问题及解决方法归类.
.DataGrid 的 全选/取消全选 控制.
.利用ASP.NET的内置功能抵御Web攻.
..net 2.0中新增的nullable类型.
.使用@Page指令的Src属性 简化对老.
.在atlas里面的UpdatePanel控件中.
.asp.net 2.0中gridview里嵌套dro.
.把.NET程序部署到没有安装.NET F.
.Asp.net cache 简述.

收藏一段小的.net下的验证码片段

发表日期:2006-8-27


收藏一段小的.net下的验证码片段,以供以后参考。

 protected void Page_Load(object sender, EventArgs e)
    {
         //先产生数字串
         string checkCode = this.CreateRandomCode(6);
        //用session保存
         Session["CheckCode"] = checkCode;
      //作图
        CreateImage(checkCode);
       
    }
    private void CreateImage(string checkCode)
    {
        System.Drawing.Bitmap image = new System.Drawing.Bitmap(Convert.ToInt32(Math.Ceiling((decimal)(checkCode.Length * 14))), 22);
        Graphics g = Graphics.FromImage(image);
       

        try
        {
          
            Random random = new Random();
            g.Clear(Color.AliceBlue);
           
            for (int i = 0; i < 25; i++)
            {
                int x1 = random.Next(image.Width);
                int x2 = random.Next(image.Width);
                int y1 = random.Next(image.Height);
                int y2 = random.Next(image.Height);

                g.DrawLine(new Pen(Color.Silver), x1, y1, x2, y2);
            }

            Font font = new System.Drawing.Font("Comic Sans MS", 12, System.Drawing.FontStyle.Bold);
            System.Drawing.Drawing2D.LinearGradientBrush brush = new System.Drawing.Drawing2D.LinearGradientBrush(new Rectangle(0, 0, image.Width, image.Height), Color.Blue, Color.DarkRed, 1.2f, true);
            g.DrawString(checkCode, font, new SolidBrush(Color.Red), 2, 2);

           
            for (int i = 0; i < 100; i++)
            {
                int x = random.Next(image.Width);
                int y = random.Next(image.Height);

                image.SetPixel(x, y, Color.FromArgb(random.Next()));
            }

            g.DrawRectangle(new Pen(Color.Silver), 0, 0, image.Width - 1, image.Height - 1);

            System.IO.MemoryStream ms = new System.IO.MemoryStream();
            image.Save(ms, System.Drawing.Imaging.ImageFormat.Gif);
            Response.ClearContent();
            Response.ContentType = "image/Gif";
            Response.BinaryWrite(ms.ToArray());
        }
        finally
        {
            g.Dispose();
            image.Dispose();
        }
    }

    public string CreateRandomCode(int codeCount)
    {
        string allChar = "0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z";
        string[] allCharArray = allChar.Split(',');
        string randomCode = "";
        int temp = -1;

        Random rand = new Random();
        for (int i = 0; i < codeCount; i++)
        {
            if (temp != -1)
            {
                rand = new Random(i * temp * ((int)DateTime.Now.Ticks));
            }
            int t = rand.Next(36);
            if (temp != -1 && temp == t)
            {
                return CreateRandomCode(codeCount);
            }
            temp = t;
            randomCode += allCharArray[t];
        }
        return randomCode;
    }

http://www.cnblogs.com/jackyrong/archive/2006/08/25/486281.html

上一篇:.net 2.0中新增的nullable类型 人气:4723
下一篇:ASP.NET 2.0 Membership 人气:5934
浏览全部.net的内容 Dreamweaver插件下载 网页广告代码 祝你圣诞节快乐 2009年新年快乐