First and foremost, thanks for your time and attention!
I have a WCF web service that requires a x509 certificate for authentication. This web service has been added as a connected service and reference classes generated in a .Net Standard 2.0 Library. I would like to consume this WCF web service. However, what I'm running into is this; the BasicHttpsSecurity object I'm trying to assign to the Security property of the BasicHttpsBinding doesn't appear to have any accessible constructors...
How can I set the ClientCredentialType property to Certificate in this scenario?
In a full .Net Framework test project I made on the side, I have the exact same code working as expected. It appears the binding and the x509 certificate are setup as needed. I just can't set the Security property to specify that I want it to actually use the certificate... :/
Here's the code I'm using to setup the client. It appears to work fine in a full .Net Framework test app. The main concern is that "Security = new BasicHttpsSecurity()" tells me there is no constructor that accepts 0 arguments... However, I'm not seeing any constructors at all. Therefore, I can't tell the binding that I want to use HttpClientCredentialType.Certificate as my ClientCredentialType.
private TestServiceClient GetTestServiceClient()
{
var address = new EndpointAddress("https://known.to.be/working/service/endpoint");
var binding = new BasicHttpsBinding()
{
Name = "basic_SSL_Cert",
// ... other properties that work fine in full .Net Framework test.
// I can't instantiate/initialize this...
Security = new BasicHttpsSecurity()
{
Mode = BasicHttpsSecurityMode.Transport,
Transport = new HttpTransportSecurity()
{
// ... so I can't set this :(
ClientCredentialType = HttpClientCredentialType.Certificate,
ProxyCredentialType = HttpProxyCredentialType.None
}
}
};
var client = new TestServiceCLient(binding, address);
client.ClientCredentials.ClientCertificate.SetCertificate(
StoreLocation.LocalMachine,
StoreName.My,
X509FindType.FindBySubjectDistinguishedName,
"I can find the cert no problem."
);
return client;
}
Any advice on how to consume a WCF web service that requires an x509 certificate from a .Net Standard 2.0 Library is greatly appreciated. If I'm going about this all wrong, please do steer me straight.
Thanks in advance for your time!