首页 > 开发 > 综合 > 正文

验证码的三种做法[纯数字][纯汉字][字母/数字/汉字混合&a

2024-07-21 02:26:48
字体:
来源:转载
供稿:网友

网上有很多关于验证码做法的资料,但是真正做得完整的却非常少,所以昨天晚上参考了作者:csdn 上kwklover 的在asp.net下实现数字和字符相混合的验证码 (混合,完整,遗憾的是vb.net,说到这里我想我得感谢stone(qq9337874),因为我在把vb译成c#的过程中几番出错,最终这段翻译由他完成)!!

随机汉字参考了http://navicy.cnblogs.com/archive/2005/05/08/150756.html这篇文章的,

而最终的纯数字以及gdi+绘图则是从□☆近三十☆(qq19302038)传给我的一个oa案例里面分离出来的!

所以完整的说,这里面几乎都是别人做好了的,我只是整理出来了!

完整的下载地址是 http://www.cnblogs.com/files/thcjp/gdi.rar 

下面把代码的重点部分贴出来,如果看源文件有什么不明白可以问偶 qq110535808

效果如图(我确实懒了点,按纽的名字都没有改,哈哈)
需要说明的是,因为提交对比后,页面是重新刷新了,所以文本框里面看见的和后面图片显示不一样,这个不需要太多说明吧!!

 混合模式刷新出现约界错误 已经被 stone(qq9337874) 修正!!


下面是gdi+绘图的代码段,以及显示的调用等
using system;
using system.data;
using system.configuration;
using system.collections;
using system.web;
using system.web.security;
using system.web.ui;
using system.web.ui.webcontrols;
using system.web.ui.webcontrols.webparts;
using system.web.ui.htmlcontrols;
using system.drawing.drawing2d;
using system.drawing.imaging;
using system.drawing.text;
using system.drawing;
using system.text; 

public partial class png : system.web.ui.page
{
    
private readonly string imagepath = "validator.jpg";
    
private static string gif = "";

    
protected void page_load(object sender, eventargs e)
    
{

        
switch (request.querystring["aa"])
        
{
            
case "1":
                gif 
= stxt();
                session[
"gif"]= stxt();
                
break;
            
case "2":
                gif 
= getrandomint();
                 session[
"gif"]= getrandomint();
                
break;
            
case "3":
                gif 
= rndnum(3);
                 session[
"gif"]= rndnum(3);
                
break;
            
default:
                gif 
= rndnum(3);
                 session[
"gif"]= getrandomint();
                
break;
        }

        
        
/**////创建bmp位图
        bitmap bitmapimage = new system.drawing.bitmap(server.mappath(imagepath));
        graphics graphicimage 
= graphics.fromimage(bitmapimage);

        
/**////设置画笔的输出模式
        graphicimage.smoothingmode = smoothingmode.highspeed;
        
/**////添加文本字符串
        graphicimage.drawstring(gif, new font("arial"20, fontstyle.bold), systembrushes.windowtext, new point(00));

        
/**////设置图像输出的格式
        response.contenttype = "image/jpeg";

        
/**////保存数据流
        bitmapimage.save(response.outputstream, imageformat.jpeg);

        
/**////释放占用的资源
        graphicimage.dispose();
        bitmapimage.dispose();
    }
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表