- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
我正在 winforms 应用程序中发出网络请求。我像这样提供自定义证书验证:
ServicePointManager.ServerCertificateValidationCallback +=
new RemoteCertificateValidationCallback(certValidator.ValidateRemoteCertificate);
certValidator.ValidateRemoteCertificate 在哪里
public bool ValidateRemoteCertificate(object sender, X509Certificate certificate,
X509Chain chain, SslPolicyErrors policyErrors)
{
return false;
}
如您所见,此回调应拒绝所有服务器证书并关闭所有尝试的连接。
我的问题是这个回调被完全忽略了。我提交了一个 https 请求,它就像一个魅力。在调试器中观察它,我可以看到 ValidateRemoteCertificate
从未被调用。
为什么我的替换回调从未回调过?
编辑:LB 要求网络请求,所以这里是:
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(sourceUrl);
request.UseDefaultCredentials = true;
request.UserAgent = "Mozilla/5.0 (Windows; U; MSIE 9.0; WIndows NT 9.0; en-US))";
request.KeepAlive = false;
request.Headers.Add("Accept-Language", "en-us,en;q=1.0");
request.Method = "GET";
HttpWebResponse response = (HttpWebResponse)request.GetResponse();
编辑 2:它可能不相关,但在 .config 文件中我指示它使用配置的代理,如下所示:
<system.net>
<defaultProxy useDefaultCredentials="true"/>
</system.net>
编辑 3:下面是一个完整的、最小的示例,它显示了该行为。我希望这个示例抛出异常,因为所有证书都应该被拒绝,但它工作得很好。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Net;
using System.Text;
namespace SPMCertCallbackDemonstrator
{
class Program
{
static void Main(string[] args)
{
ServicePointManager.ServerCertificateValidationCallback = delegate { return false;};
HttpWebRequest request = (HttpWebRequest)WebRequest.Create("http://www.google.com");
request.Method = "GET";
HttpWebResponse response = (HttpWebResponse)request.GetResponse();
}
}
}
为什么我的替换回调从未回调过?
最佳答案
我发布的原始代码没有任何问题。我是通过 http 而不是 https 请求的。因此不需要证书验证。我一调用 https 请求,它就工作正常。
关于c# - 为什么我的 ServicePointManager.ServerCertificateValidationCallback 被忽略了?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21343867/
我正在尝试遵循与 How does System.Net.Mail.SMTPClient do its local IP binding 中给出的代码类似的代码。我在具有多个 IP 地址的机器上使用
我们有一个网站,每秒调用 Azure 存储数千次。所有存储端点都是 HTTPS。有谁知道设置 ServicePointManager.SetTcpKeepAlive = true 是否有助于提高性能?
我们有一个网站,每秒调用 Azure 存储数千次。所有存储端点都是 HTTPS。有谁知道设置 ServicePointManager.SetTcpKeepAlive = true 是否有助于提高性能?
目前刚刚了解 Windows Azure。 我正在查看一些示例,并且在我看到的辅助角色的 OnStart 事件 ServicePointManager.DefaultConnectionLimit =
我有一个 Xamarin.Forms 应用程序,它利用 ServicePointManager.ServerCertificateValidationCallback 类和方法实现证书固定。在 And
我需要使用多个任务来达到网络服务端点。每个任务都将流式传输数据,并打开一个 httpWebRequest 连接。 我需要将属性 ServicePointManager.DefaultConnectio
我在 azure 中作为 webjob 运行的控制台应用程序中调用了这行代码 50000 次: await cloudBlockBlob.UploadFromFileAsync(sourceFile)
有人可以解释一下 ServicePointManager.FindServicePoint 的用途吗?我一直在编写一些代码来使用 C# 中的代理,并且已经看到它在这方面可能有用的指标,但看不出为什么或
我想知道当我在她的标志上设置三个不同的 SecurityProtocolType 时属性 ServicePointManager.SecurityProtocol 是如何工作的。即: ServiceP
更改 ServicePointManager.DefaultConnectionLimit 是只影响当前进程还是影响整个 .NET 平台。请提供来源。 最佳答案 ServicePointManager
最近,我在发送电子邮件时遇到错误: The remote certificate is invalid according to the validation procedure using 我找到了
我在我的网站中使用网络服务。供应商提供了一个示例代码,在代码中有这样一行: // For Ignore SSL Error ServicePointManager.ServerCertificateV
我有以下代码。 public void Submit(string XML) { ServicePointManager.ServerCertificateValidationCallback = V
下面的代码是如何求值的? ServicePointManager.ServerCertificateValidationCallback += ValidateRemoteCertificateA;
ServicePointManager.DefaultConnectionLimit 设置辅助角色的最大并发 session 数,但如何找到最佳值? 最佳答案 根据Microsoft Support
如果我的机器上运行着2个Asp.Net网站,并且打开了2个PowerShell窗口,那么有多少个静态类System.Net.ServicePointManager实例? 每台机器一台?每个应用程序域一
默认情况下,HttpClient 每个主机仅使用 2 个并发连接。根据 docs我可以改变这一点。我不想在全局范围内更改它,我只想为我正在使用的服务更改它。因此我写了以下代码: // Increase
我正在使用一个应用程序,该应用程序每分钟向不同的 URI 发送数百个 HTTP 请求。有什么方法可以监控应用程序创建的连接吗?我发现 ServicePointManager 非常适合检查特定域,但它需
在 .NET 4.5 中,如果我将 ServicePointManager.SecurityProtocol 设置为多个协议(protocol)并且服务器接受所有这些协议(protocol),将使用哪
我正在尝试将 VB.net 项目转换为用于 Android 应用程序的 Java。我在某个时候卡住了。我的 VB.net 代码是 Public Function SendWebRequest(ByVa
我是一名优秀的程序员,十分优秀!