gpt4 book ai didi

c# - 在用 C# 编写的 WCF 客户端中验证证书

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

我有非常简单的测试客户端 WCF 服务。 WCF 服务受用户和密码以及 ssl 保护。

我的测试客户端是这样的:

       ServicePointManager.ServerCertificateValidationCallback = new RemoteCertificateValidationCallback(
delegate
{
return true;
});

var binding = new BasicHttpBinding(BasicHttpSecurityMode.TransportWithMessageCredential);
var endpointAddress = new EndpointAddress(@"https://localhost:8083/WS/Service.svc");

using (var service = new ServiceClient(binding, endpointAddress))
{
service.ClientCredentials.UserName.UserName = @"user";
service.ClientCredentials.UserName.Password = @"password";

var data = service.GetData();
}

是否可以删除行:

       ServicePointManager.ServerCertificateValidationCallback = new RemoteCertificateValidationCallback(
delegate
{
return true;
});

每当我删除这一行时,我都会得到SecurityNegotiationException

最佳答案

您似乎故意忽略了所有提供给您的有用信息。您使用的回调应该为您提供所需的所有信息:

ServicePointManager.ServerCertificateValidationCallback = 
delegate(
Object obj,
X509Certificate certificate,
X509Chain chain,
SslPolicyErrors errors)
{
// instead of the shortcut "true" here, evaluate the parameters!
return true;
};

确保找出系统中的错误并修复它们。

关于c# - 在用 C# 编写的 WCF 客户端中验证证书,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31739328/

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