Изменить конечную точку WebService с HTTP на HTTPS - PullRequest
0 голосов
/ 27 декабря 2018

Я действительно новичок в .NET, и я пришел к препятствию (я полагаю).

У меня есть проект, который требует изменения одного адреса для другого сервиса, который мы используем, этот адрес изменился с HTTP наHTTPS.

Мой вопрос, для этого изменения, нужно ли мне изменить код метода, который вызывает запрос, поэтому я загружаю туда сертификат или я просто изменяю конфигурацию конечной точки?

Я пробовал привязку безопасности конфигурации конечной точки со None до TransportWithMessageCredential, также загружая сертификат в репозиторий компьютера, но я не уверен, как мне указать, какой сертификат я хочу отправить.

1 Ответ

0 голосов
/ 27 декабря 2018

Полагаю, вы используете BasicHttpBinding прямо сейчас, и вам нужно перейти с конечной точки HTTP на конечную точку HTTPS, которая требует проверки с помощью сертификата X509.Я предполагаю, что вы используете C #.

Если вы используете любую версию .NET Framework старше 4.5 , вы можете сделать:

var binding = new BasicHttpBinding(BasicHttpsSecurityMode.Transport);

Если вы используете .NET Framework 4.5 или более новую версию, вы можете сделать это следующим образом:

var binding = new BasicHttpsBinding();
binding.Security.Transport.ClientCredentialType = HttpClientCredentialType.Certificate;

Предполагая, что вы импортировали определение WebService, полученное из System.ServiceModel.ClientBase (например, когда вы щелкаете правой кнопкой мыши по проекту вVisual Studio и выберите Add> Service Reference), вы можете сделать что-то вроде этого:

var address = new EndpointAddress(serviceUrl);
var wsClient = new ServiceReference1.YourServiceClient(binding, address);
// x509Cert is a variable of type 'X509Certificate2'.
wsClient.ClientCredentials.ClientCertificate.Certificate = x509Cert;

// Take a look at: https://stackoverflow.com/a/49303859/
wsClient.Open();
wsClient.CallTheService();
wsClient.Close();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...