我在声明模式下为 Https 配置了一个共享点服务器。我在共享点服务器中托管了 WCF 服务。此 WCF 服务器使用客户端证书进行身份验证。
WCF 服务使用BasicHttpBinding
.
在客户端以下是绑定:
BasicHttpBinding binding = new BasicHttpBinding();
binding.TransferMode = TransferMode.StreamedResponse;
binding.Security.Mode = BasicHttpSecurityMode.Transport;
binding.Security.Transport.ClientCredentialType = HttpClientCredentialType.Certificate;
binding.Security.Transport.ProxyCredentialType = HttpProxyCredentialType.Ntlm;
我还使用以下调用设置了客户端证书:
base.ClientCredentials.ClientCertificate.SetCertificate(
"CN=tempClientcert", StoreLocation.LocalMachine, StoreName.My
);
客户端证书在客户端和服务器中正确设置。
当我尝试调用该服务时,我收到以下错误:
System.Security.MessageSecurityException : The HTTP request is unauthorized
with client authentication scheme 'Anonymous'. The authentication header
received from the server was 'NTLM'
尽管我已将客户端凭据设置为证书,但尚不清楚为什么它说 http 客户端身份验证方案是匿名的。