首页 新闻 论坛 群组 Blog 文档 下载 读书 Tag 网摘 搜索 .NET Java 游戏 视频 人才 外包 培训 数据库 书店 程序员
中国软件网
欢迎您:游客 | 登录 注册 帮助
  • vc.net中使用https时关于信任证书的问题 [已结贴,结贴人:vc_xx]
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-05-11 01:03:51 楼主
    我现在要用VC.NET做一个客户端通过https连接一个网页,但因为对方的证书是不可信的,所以在程序运行时总是弹出一个对话框说那个证书是不受信任,程序就退出了,msdn和网上一些资料都是针对VB.NET和c#的,也有的说使用下边的代码可以解决问题:
    将以下代码作为项目的一个类
    internal class AcceptAllCertificatePolicy : ICertificatePolicy
    {
    public AcceptAllCertificatePolicy()
    {
    }

    public bool CheckValidationResult(ServicePoint sPoint,
    X509Certificate cert, WebRequest wRequest,int certProb)
    {
    //总返回“真”
    return true;
    }
    }
    在调用请求之前加上如下代码就可以解劝决我那个问题:
    ServicePointManager.CertificatePolicy = new AcceptAllCertificatePolicy();
    可我不会用这几句,希望你能帮我一下,详细说一下这几句代码怎么用,谢谢
    100  修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-05-11 10:00:091楼 得分:10
    不会,帮忙顶起来
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-05-11 14:00:052楼 得分:90
    这几句代码是C#的,C++版本的语法随使用的C++托管扩展版本而定。不过你可以用C#写一个DLL在C++里面引用,这也是微软推荐的做法。
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-05-11 22:06:323楼 得分:0
    to:jiangsheng

    我是要用vc.net做一个客户端,然后通过https读取一个网页,但由于那个站点证书不可信,所以我只有用这个方法.我现在已经将那几句用c#写了一个DLL,在vc.net客户端里也使用了那个DLL,还引入了一些必须的命名空间,
    这句:
    ServicePointManager.CertificatePolicy = new AcceptAllCertificatePolicy();
    我换成了
    System::Net::ServicePointManager::CertificatePolicy = new AcceptAllCertificatePolicy();
    程序编译没有问题,可运行时就是读不到目标网页的代码.是不是这句放的地方不对?有三个地方:session.GetHttpConnection处,pServer->OpenRequest处和pFile->Read处,我不知道该放哪处.

    也有可能是我这个方法就不对,这个问题如果让你解决你会怎么办?
    我的主要目的是:用vc++.net做一个程序,这个程序能通过https读取一个证书并不可信的网页的代码.希望你能给我讲一个详细的思路和方法,谢谢
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-05-12 00:26:544楼 得分:0
    你的代码应该没有问题,不过设置policy应该在执行网络请求之前
    CheckValidationResult这个函数被执行到了么?
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-05-12 13:14:295楼 得分:0
    这个问题我解决了,我将读取网页的那部分全部用c#写了一个DLL,并让它返回读取的内容,然后在vc.net中调用那个DLL就行了,这还是你给的思路,谢谢了
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-05-19 11:25:056楼 得分:0
    请教个问题:我要做一个网络语音会议(vc.net),要实现一对多会话,现在只能实现一对一对话,请问应该怎样做才能实现啊,谢谢.
    修改 删除 举报 引用 回复

    网站简介广告服务网站地图帮助联系方式诚聘英才English 问题报告
    世纪乐知(北京)网络技术有限公司 版权所有 京 ICP 证 020026 号
    Copyright © 2000-2007, CSDN.NET, All Rights Reserved