【发布时间】:2019-04-14 00:43:06
【问题描述】:
我正在尝试将 WCF api 与 .Net Core 2.1.2 一起使用,但我目前在认证验证方面遇到了一些问题。
主要问题是,当我在调试时,我可以向服务器发出请求。当我部署我的项目的可执行文件并在我的机器上运行时,我也可以发出请求。但是,当我将相同的可执行文件复制到接受环境时,代码会抛出异常“无法为 SSL/TLS 安全通道建立信任关系”
我的机器在验收环境之外(我使用的是 VPN)。验收机在环境内。
有什么想法吗?
谢谢!
private WSClient InstantiateProxy()
{
WSClient accessWSClient = new WSClient(EndpointConfiguration.MIAccessPort, Configuration["AppConfiguration:Endpoint"]);
accessWSClient.ClientCredentials.Windows.ClientCredential =
new NetworkCredential(Configuration["AppConfiguration:Username"], Configuration["AppConfiguration:Password"]);
ConfigureBinding(accessWSClient);
accessWSClient.ClientCredentials.ServiceCertificate.SslCertificateAuthentication = new X509ServiceCertificateAuthentication
{
CertificateValidationMode = X509CertificateValidationMode.None,
RevocationMode = X509RevocationMode.NoCheck,
};
return accessWSClient;
}
private static void ConfigureBinding(WSClient accessWSClient)
{
System.ServiceModel.BasicHttpBinding binding = new System.ServiceModel.BasicHttpBinding
{
MaxBufferSize = int.MaxValue,
ReaderQuotas = System.Xml.XmlDictionaryReaderQuotas.Max,
MaxReceivedMessageSize = int.MaxValue,
AllowCookies = true
};
binding.Security.Mode = System.ServiceModel.BasicHttpSecurityMode.Transport;
binding.Security.Transport.ClientCredentialType = System.ServiceModel.HttpClientCredentialType.Windows;
accessWSClient.Endpoint.Binding = binding;
}
【问题讨论】:
标签: wcf .net-core ssl-certificate x509certificate2