Мне дали https: URL-адрес и имя пользователя/пароль. Когда я загружаю URL-адрес в браузер, мне предлагается ввести имя пользователя и пароль, а затем я вижу .wsdl. .wsdl указывает внутренний URL-адрес, к которому я не могу получить доступ, но я полагаю, что он предназначен для реального сайта.
Когда я создаю ссылку на службу в VS2013, используя URL-адрес прокси, мне три раза предлагается ввести имя пользователя и пароль, затем я получаю правильный клиент, настройки в app.config и т. д.
Сгенерированные привязки в app.config предназначены для BasicHttpBinding с режимом безопасности Transport и адрес конечной точки, указывающий на этот недоступный внутренний URL-адрес.
Итак, на основе сгенерированных привязок я:
- Заменяю недоступный внутренний URL-адрес URL-адресом прокси, который мне предоставили.
- Измените режим безопасности на "TransportWithMessageCredentials"
Код: Выделить всё
- Замените ClientCredentials именем пользователя и паролем:
используя (var client = new MyCustomersServiceClient())
{
var loginCredentials = new ClientCredentials();
loginCredentials.UserName.UserName = "ausername";
loginCredentials.UserName.Password = "apassword";
}Код: Выделить всё
var defaultCredentials = client.Endpoint.Behaviors.Find(); client.Endpoint.Behaviors.Remove(defaultCredentials); client.Endpoint.Behaviors.Add(loginCredentials); var myData = new MyData { }; var result = client.receiveData(myData);
Не удалось установить безопасный канал для SSL/TLS с полномочиями «xxxxx.com».
Просмотр Вокруг большая часть того, что я нахожу, предполагает проблемы с SSL-сертификатами, но я не уверен, что это имеет смысл. Если бы это было так, я бы ожидал увидеть проблемы при просмотре .wsdl через браузер. И я подумал, что, удалив учетные данные клиента по умолчанию, я обойду проверку сертификата. И я вижу несколько сообщений о более неясных проблемах, которые приводят к такому же сообщению об ошибке.
Я включил ведение журнала сообщений SOAP, но это не дало мне никакой информации. Он показывает неудавшееся исходящее сообщение, но бесполезно.
Итак, я смотрел трафик в Fiddler. Я вижу два сообщения: HTTP-сообщение для «Tunnel to» с результатом 200 и HTTPS-сообщение для URL-адреса прокси с результатом 401.
На этом этапе я вижу две возможности:
- Мне нужно установить сертификат SSL, как следует из сообщения об ошибке, или
- проблема просто в том, что я не предоставляю имя пользователя/пароль к сервису так, как он понимает, и отклоняет мою попытку подключения.
Итак, наконец, вопросы:
- Ввел ли я себя в заблуждение и мне действительно нужно возиться с сертификатами SSL?
- Если нет, что мне делать в WCF, чтобы передать имя пользователя и пароль веб-службе HTTPS, хостинг MuleSoft
ESB? (Mule EE Core Extensions/3.5.1, если это поможет).
Подробнее здесь: https://stackoverflow.com/questions/261 ... -xxxxx-com
Мобильная версия