• ----:)欢迎访问源码网(:----
    • 首页
    • 博客
    • 学院
    • 下载
    • 论坛
    • 影视
    • 发布源码
    • RSS
    • ITPig
    • 笑话网
    • 百家姓
    • 繁體中文

源码网 - 中国第一源码门户
选择镜像:网通镜像 - 电信主站
  • 首 页
  • 新闻动态
  • 网站运营
  • 网页制作
  • WEB开发
  • 编程开发
  • 图像媒体
  • 操作系统
  • 数据库
  • 服务器
热门搜索 优化 SEO 故事 cms IIS7 MySQL 个人 AdSense 主题推广 | 文章搜索: 高级搜索
会员登录/控制面版您的位置: 学院首页 >> WEB开发 >> .NET 开发 >> 详细内容
 

推荐文章

 
 

热点文章

  • FckEditor远程图片下载插件
  • TFS(Team Foundation Server)使用经验
  • IIS过滤器实现.NET程序不破解DLL替换字符串一法
  • 为ASP.NET封装的SQL数据库访问类
  • ASP.NET2.0中文验证码的实现
  • Url地址重写,利用HttpHander手工编译页面并按需生成静..
  • ASP.NET学习笔记一——ASP和ASP.NET比较
  • 使用HtmlInputHidden 控件在本页面保持状态和跨页面传..
  • ASP.Net发邮件
  • Silverlight 2.0中文学习资源集萃
  • WinForm中使用XtraGrid控件,实现在界面中动态修改列显..
  • 解析ASP.NET木马文件操作
 
 

相关文章

 
 

百度搜索

 
 

ASP.NET2.0中文验证码的实现

  • 阅览次数:
  • 文章来源: http://www.100pig.com/blog
  • 原文作者: 大猪
  • 整理日期: 2007-12-20
  • 发表评论
  • 字体大小:
  • 小
  • 中
  • 大

这里只是一个简单的例子,字体也只是单一的一种,如果想有更好的效果那就把每一个字都设一种单独的字体,这样一来效果会好很多。希望对各位有所帮助

在判断的时候只要把取得的文本框的值与“Session["valicode"] ”进行判断是否一致就行了。


//建立位图对象
        Bitmap NewbitMap = new Bitmap(90, 22, PixelFormat.Format32bppArgb);
        //根据上面创建的位置对象创建绘图面
        Graphics g = Graphics.FromImage(NewbitMap);
        //以指定的颜色填充矩形区
        g.FillRectangle(new SolidBrush(Color.White), new Rectangle(0, 0, 90, 22));
        //创建字体对象
        Font newfont = new Font("幼圆", 14);
        //创建RectangleF结构指定一个区域
        RectangleF rectangle = new RectangleF(0, 0, 90, 22);
        //创建随机数
        Random Newrd = new Random();
        string[] abcd="我,是,没,高,天,地,聊,材,盆,浊,小,涯,尖,欠,猪,左,腿,刀,吃,渴,棍,皮,影,歇,草,营,救,税,说,坏,通,病,二,世,期,春,季,弄,刑,事,警,强,窝,菜,干,什,前,都,哭,拉,面,鱼,文,鬼,或,热,狗,蛋,毛,笔,网,件,构,试,社,帮,耐,烧,粘,苹,鞋,板,裳,花,海,题,a,e,f,r,9,0,k,2,4,7,1,3,q,w,y,u,v,x,p,s,a,d,8,5,t".Split(',');
        int RamStr=Newrd.Next(1,100);
        int Ramstr1 = Newrd.Next(1, 100);
        int Ramstr2 = Newrd.Next(1, 100);
        int Ramstr3 = Newrd.Next(1, 100);
        string ValiNum = abcd[RamStr] + abcd[Ramstr1] + abcd[Ramstr2] + abcd[Ramstr3].ToString();
        Session["valicode"] = ValiNum.ToString();
        //使用指定的颜色填充上面RectangleF结构指定的矩形区域
        g.FillRectangle(new SolidBrush(Color.BurlyWood), rectangle);
        //绘制随机线条
        for(int ii =0;ii<10;ii++)
        {
            int x1=Newrd.Next(NewbitMap.Height);
            int y1=Newrd.Next(NewbitMap.Width);
            int x2 = Newrd.Next(NewbitMap.Height);
            int y2 = Newrd.Next(NewbitMap.Width);
            g.DrawLine(new Pen(Color.Azure), x1, y2, y1, x1);
        }
        //在上面填充的矩形区域中填充上面生成的随机数
        g.DrawString(ValiNum, newfont, new SolidBrush(Color.Blue), rectangle);
        for (int i = 0; i < 50; i++)
        {
            int x = Newrd.Next(NewbitMap.Width);
            int y = Newrd.Next(NewbitMap.Height);
            NewbitMap.SetPixel(x, y, Color.FromArgb(Newrd.Next()));
        }
        MemoryStream ms = new MemoryStream();
        NewbitMap.Save(ms, ImageFormat.Gif);
        Response.ClearContent();
        Response.ContentType = "image/Gif";
        Response.BinaryWrite(ms.ToArray());

上一篇:PHP使用zlib扩展实现页面GZIP压缩输出
下一篇:构建支持Master/Slave读写分离的数据库操作类
  • 网友评论:
  • 查看所有评论
  • 我要发表评论
您的网名:
留言主题:
你要发表的内容:

 

关于本站 | 广告联系 | 版权声明 | 网站地图 | 发布软件 | 帮助中心 | 源码论坛

Copyright © 2005-2007 CodePub.Com  程序支持:木翼  滇ICP备05005971号