gpt4 book ai didi

c# - 在 c# httpwebrequest 中禁用主机名验证

转载 作者:太空宇宙 更新时间:2023-11-03 21:35:55 26 4
gpt4 key购买 nike

我在 C# 环境中实现 Web 服务。我正在使用 SSL 连接。我的网址是这样的:

https://pseudoservername:8443/services/...

但证书期望它是:

https://ourcompany.services.public.com:8443/services/...

所以我的主机名不匹配。在 Java 中,您可以通过创建自己的 hostnameVerifier 类并让 JVM 使用该类而不是普通类来简单地关闭此主机名验证。这非常有用,因为效果只是本地的(仅禁用此应用程序的验证)和临时的(主机名验证可以在应用程序需要时打开/关闭)。

你怎么能在 C# 中做到这一点?

我不想要忽略整个证书验证的解决方案。我还想保留禁用主机名验证的本地和临时效果。我也不想出于超出此问题范围的原因更改我的网址(只是让它们匹配)。

最佳答案

如果您正在使用 WebRequests 或类似的东西,您可以连接到 ServicePointManager.ServerCertificateValidationCallback并将自定义验证方案添加为

ServicePointManager.ServerCertificateValidationCallback = delegate(
Object obj, X509Certificate certificate, X509Chain chain,
SslPolicyErrors errors)
{
if (errors == SslPolicyErrors.RemoteCertificateNameMismatch)
{
return (true);
}
};

参见 MSDN详情

关于c# - 在 c# httpwebrequest 中禁用主机名验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21884001/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com