| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2083 人关注过本帖
标题:我不能把验证码写入图片中。。怎么办!
只看楼主 加入收藏
小瘪三的烦恼
Rank: 1
等 级:新手上路
帖 子:86
专家分:3
注 册:2008-9-20
收藏
 问题点数:0 回复次数:9 
我不能把验证码写入图片中。。怎么办!
using System;
using System.Data;
using System.Configuration;
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;
using System.Drawing.Imaging;
public partial class _Default : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
        string str = suiji(4);
        Bitmap bit = new Bitmap(50, 20);
        Graphics g = Graphics.FromImage(bit);
        Font text = new Font("宋体",20);
        Rectangle rec = new Rectangle(0,0,50,20);
        g.FillRectangle(new SolidBrush(Color.Green), rec);      
        g.DrawString(str, text, new SolidBrush(Color.Blue),rec);
        bit.Save("yanzhen.jpg",ImageFormat.Jpeg);
        Image1.ImageUrl = "yanzhen.jpg";
    }
    public string suiji(int a)
    {
        string result = "";
        string str = "0,1,2,3,4,5,6,7,8,9";
        string[] arry = str.Split(',');
        Random ram = new Random();
        
        for (int i = 0; i < a; i++)
        {
            int k = ram.Next(10);
            result = result + arry[k];
        }
        return result;
    }
}

不能显示!

1.JPG (5.29 KB)
图片附件: 游客没有浏览图片的权限,请 登录注册
搜索更多相关主题的帖子: 验证 
2008-10-07 20:53
球球
Rank: 6Rank: 6
等 级:贵宾
威 望:27
帖 子:1146
专家分:265
注 册:2005-11-28
收藏
得分:0 
调用的路径对不对哦?

好累
2008-10-07 22:44
小瘪三的烦恼
Rank: 1
等 级:新手上路
帖 子:86
专家分:3
注 册:2008-9-20
收藏
得分:0 
呵呵 成功了!
using System;
using System.Data;
using System.Configuration;
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;
using System.Drawing.Imaging;
public partial class _Default : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
        string str = suiji(4);
        Bitmap bit = new Bitmap(50, 20);
        Graphics g = Graphics.FromImage(bit);
        Font text = new Font("宋体", 12);
        Rectangle rec = new Rectangle(0, 0, 50, 20);
        g.FillRectangle(new SolidBrush(Color.Green), rec);
        g.DrawString(str, text, new SolidBrush(Color.Blue), rec);
        bit.Save(Server.MapPath("yanzhen.jpg") , ImageFormat.Jpeg);
        Image1.ImageUrl = "yanzhen.jpg";
    }
    public string suiji(int a)
    {
        string result = "";
        string str = "0,1,2,3,4,5,6,7,8,9";
        string[] arry = str.Split(',');
        Random ram = new Random();

        for (int i = 0; i < a; i++)
        {
            int k = ram.Next(10);
            result = result + arry[k];
        }
        return result;
    }
}
2008-10-08 08:47
drychq
Rank: 1
等 级:新手上路
帖 子:114
专家分:0
注 册:2007-10-30
收藏
得分:0 
我 也 在弄这个。。。
  请问
bit.Save(Server.MapPath("yanzhen.jpg") , ImageFormat.Jpeg);
这句 保存路径吗????
  还有ImageFormat.Jpeg 是 什么 啊。。。
不懂
 麻烦解释一下。。
2008-10-09 00:30
徐强
Rank: 2
等 级:新手上路
威 望:3
帖 子:72
专家分:0
注 册:2007-3-30
收藏
得分:0 
汗 你这样写验证码行么?
怎么感觉不太好?。。图片都在服务端放着     假如说同一秒钟内100个用户访问网站  不知道会有什么后果。。。。
2008-10-09 10:33
铲铲
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:34
帖 子:506
专家分:0
注 册:2006-5-2
收藏
得分:0 
随机产生4个字符以后,用于生成缩略图,同时服务器也要小心保存这四个字符,用以对用户输入做出判断。不知你保存到哪里。

这样存在一个严重的问题,当多个用户访问时,验证码不是互相隔离的。举个例子:
A用户到达登陆页面,网站为其生成缩略图A和相关信息,A用户正在输入用户名密码

B用户到达登陆页面,网站为其生成了缩略图B和相关信息。

A这时按照缩略图A填写并提交,但网站只能用缩略图B的相关信息来验证用户A的输入,当然用户A就不能验证通过。

因此如果要用文件系统来产生验证码的话,必须要考虑每个用户之间的隔离。

铲铲是也
2008-10-09 12:50
smoon
Rank: 1
等 级:禁止访问
帖 子:461
专家分:0
注 册:2006-4-29
收藏
得分:0 
楼上的说的好~~~至少应该按时间或是用户名来见目录或文件名是吗?

QQ:860660016
网站:http://
承接各种C#项目中。。。。。
2008-10-09 21:20
铲铲
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:34
帖 子:506
专家分:0
注 册:2006-5-2
收藏
得分:0 
实际上,你可以参看一下置顶贴里的验证码控件,提供了较好的解决办法,那就是采用流,而不借助文件系统。
你要想,不仅可以输出HTML文件,其实整个输出都是可以被控制和改写的,具体就是清空Response内容,换入适当图片,改写ContentType,在客户端得到的就是一张图片。这个图片是实时生成的,并不需要文件系统支持。

铲铲是也
2008-10-09 22:13
小瘪三的烦恼
Rank: 1
等 级:新手上路
帖 子:86
专家分:3
注 册:2008-9-20
收藏
得分:0 
恩。。。谢谢指教。。。我看看去。。我是新手。。
2008-10-10 09:24
妖狐
Rank: 1
等 级:新手上路
帖 子:8
专家分:0
注 册:2008-10-16
收藏
得分:0 
回帖是一种美德
2008-10-16 23:30
快速回复:我不能把验证码写入图片中。。怎么办!
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.019734 second(s), 10 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved