Я пытаюсь создать клиент в Visual Studio 2019, который будет использовать службу SOAP, защищенную с использованием идентификатора / прохода и сертификата.
Я создал проект SoapUI, импортировав WSDL, а затем настроил параметры ws-security в проекте для получения исходящей подписи и импортировал хранилище ключей, в котором есть сертификат, который я хочу использовать. Наконец, я установил аутентификацию для запроса на использование Basic, установил id / pass и выбрал мою исходящую подпись в раскрывающемся списке WSS. После всего этого я могу без проблем вызвать сервис, используя Soap UI.
В Visual Studio я создал новый консольный проект, добавил ссылку на подключенный сервис, используя тот же WSDL, и теперь я пытаюсь написать код,Я попытался установить учетные данные, выполнив
System.ServiceModel.BasicHttpsBinding myBinding = new System.ServiceModel.BasicHttpsBinding();
System.ServiceModel.EndpointAddress myAddress = new System.ServiceModel.EndpointAddress("url");
ServiceReference1.CaseTypeClient myClient = new ServiceReference1.CaseTypeClient(myBinding, myAddress);
myClient.ClientCredentials.UserName.UserName = "ID";
myClient.ClientCredentials.UserName.Password = "Pass";
System.Security.Cryptography.X509Certificates.X509Certificate2 myCert = new System.Security.Cryptography.X509Certificates.X509Certificate2("CertFileName", "CertPass");
myClient.ClientCredentials.ClientCertificate.Certificate = myCert;
. Однако, когда я вызываю метод, я получаю ошибку мыла из службы, говоря «XmlException: несвязанный префикс, используемый в квалифицированном имени« wsse: FailedAuthentication »».
Как правильно делать то, что я пытаюсь сделать?