我的客户已通知我他们的SSL和Internet Explorer存在问题.他们说,他们在访问URL时会遇到信任问题.

我正在通过HTTPS访问JSON.网站位于一台服务器上,我在本地机器上使用控制台应用程序.我正在try 绕过SSL证书,但是,我的代码仍然失败.

我是否可以更改HttpWebRequest来解决此问题?

我使用以下代码获得此错误:

    // You must change the URL to point to your Web server.
        HttpWebRequest req = (HttpWebRequest)WebRequest.Create(url);
        req.Method = "GET";
        req.AllowAutoRedirect = true;

        // allows for validation of SSL conversations
        ServicePointManager.ServerCertificateValidationCallback = delegate { return true; };


        WebResponse respon = req.GetResponse();
        Stream res = respon.GetResponseStream();

        string ret = "";
        byte[] buffer = new byte[1048];
        int read = 0;
        while ((read = res.Read(buffer, 0, buffer.Length)) > 0)
        {
            //Console.Write(Encoding.ASCII.GetString(buffer, 0, read));
            ret += Encoding.ASCII.GetString(buffer, 0, read);
        }
        return ret;

推荐答案

我使用以下代码启用了日志(log)记录:

http://blogs.msdn.com/b/dgorti/archive/2005/09/18/471003.aspx

日志(log)位于bin/debug文件夹中(我的控制台应用程序处于调试模式).您需要将安全协议类型添加为SSL 3

我在日志(log)中收到一个算法不匹配.以下是我的新代码:

        // You must change the URL to point to your Web server.
        HttpWebRequest req = (HttpWebRequest)WebRequest.Create(url);
        req.Method = "GET";
        ServicePointManager.SecurityProtocol = SecurityProtocolType.Ssl3;


        // Skip validation of SSL/TLS certificate
        ServicePointManager.ServerCertificateValidationCallback = delegate { return true; };


        WebResponse respon = req.GetResponse();
        Stream res = respon.GetResponseStream();

        string ret = "";
        byte[] buffer = new byte[1048];
        int read = 0;
        while ((read = res.Read(buffer, 0, buffer.Length)) > 0)
        {
            Console.Write(Encoding.ASCII.GetString(buffer, 0, read));
            ret += Encoding.ASCII.GetString(buffer, 0, read);
        }
        return ret;

Asp.net相关问答推荐

包含Include的低速EF核心查询

强制从 /bin 而不是 GAC 加载程序集?

Firefox 和 Chrome 之间 1 像素的行高差

为什么微软决定支持 jQuery 如此重要?

获取在 asp.net identity 2.0 中分配了角色的用户列表

无法读取配置部分system.servicemodel,因为它缺少部分声明

如何从 web.config 中读取系统值并在 ASP.NET MVC C# 方法中使用

多行文本框多个换行符

Web.config 导致被组策略阻止错误

正在检索组件的 COM 类工厂......错误:80070005 访问被拒绝. (来自 HRESULT 的异常:0x80070005 (E_ACCESSDENIED))

使用 JavaScript 禁用 ASP.NET 验证器

VirtualPath 在当前应用程序根目录之外

如何从 JS 访问 ViewBag

防止在 Visual Studio 2008 ASP.NET Web 窗体中复制粘贴时自动生成 ID

如何设置默认页面 asp.net

将通用列表绑定到转发器 - ASP.NET

在 asp.net 中将 JSON 转换为 .Net 对象时出错

IIS Express - 增加内存限制

通过 ASP.NET/C# 使用 Plupload

如何从 ASP.NET Identity 获取用户列表?