gpt4 book ai didi

C# Visual Studio 2015 : IWebProxy certificate validation

转载 作者:IT王子 更新时间:2023-10-29 04:50:47 26 4
gpt4 key购买 nike

我正在尝试创建一个 C# 代理 DLL,它允许 VS2015 社区在我的离线工作站上通过具有身份验证的公司 HTTP 代理访问互联网。

遵循 this MSDN blog post 的说明我能够以这种方式将 VisualStudio 连接到 HTTP 页面:

namespace VSProxy
{
public class AuthProxyModule : IWebProxy
{
ICredentials crendential = new NetworkCredential("user", "password");

public ICredentials Credentials
{
get
{
return crendential;
}
set
{
crendential = value;
}
}

public Uri GetProxy(Uri destination)
{
ServicePointManager.ServerCertificateValidationCallback = (Header, Cer, Claim, SslPolicyErrors) => true;
return new Uri("http://128.16.0.123:1234", UriKind.Absolute);
}

public bool IsBypassed(Uri host)
{
return host.IsLoopback;
}
}
}

但我无法连接到 Visual Studio Community 访问的帐户身份验证页面。

因此,我正在尝试使用 DLL 验证 Microsoft 证书。

有什么方法可以完成 HTTPS 和证书颁发?

如何验证 webProxy DLL 中的证书?

最佳答案

如果您想完全绕过证书检查,您可以将 ServicePointManager.ServerCertificateValidationCallback 设置为始终使用返回 true 的委托(delegate):

var validationCallback = new RemoteCertificateValidationCallback(delegate { return true; });

....

ServicePointManager.ServerCertificateValidationCallback += validationCallback;

我将其包装在 try/catch/finally 中,并在最后删除委托(delegate)(否则它会应用进程范围的 iirc):

finally
{
ServicePointManager.ServerCertificateValidationCallback -= validationCallback;
}

26/03/18 更新:如果您可以控制 HttpClient 的创建,则可以在构造它时传递一个 HttpClientHandler,并将其 ServerCertificateCustomValidationCallback 委托(delegate)设置为返回 true .您有效地限制了在进程范围内禁用 SSL 检查的危险影响,并将其限制为使用此 HttpClient。安全多了。代码:

var handler = new HttpClientHandler();

// Optional check to enable / disable based on config setting.
if (ConfigurationManager.AppSettings["EnableSslCertificateCheck"] == null ||
Convert.ToBoolean(ConfigurationManager.AppSettings["EnableSslCertificateCheck"]) == false)
{
handler = new HttpClientHandler
{
ClientCertificateOptions = ClientCertificateOption.Manual,
ServerCertificateCustomValidationCallback =
(httpRequestMessage, cert, cetChain, policyErrors) => true
};
}

return new HttpClient(handler);

关于C# Visual Studio 2015 : IWebProxy certificate validation,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42157457/

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