У меня есть сервер sharepoint, настроенный для Https в режиме утверждений. Я разместил службу WCF на сервере sharepoint. Этот 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 является анонимной.