2017-02-16 22 views
0

У меня есть клиент, который использует CustomBinding для использования веб-службы. Я устанавливаю сертификат сервиса и клиента перед отправкой моего запроса, но таким образом мне нужно знать сертификат службы для его использования и установить его на клиентской машине. Я хочу, чтобы служба предоставляла текущий сертификат, поэтому мне не нужно обновлять его каждый раз, когда он изменяется.Как включить NegotiateServiceCredential в WCF при использовании CustomBinding

Я знаю, что это можно сделать при использовании WSHttpBinding, установив NegotiateServiceCredential в True с помощью свойства Security, но поскольку я использую CustomBinding, не существует такого свойства, и я не знаю, где установить NegotiateServiceCredential в True.

Может ли кто-нибудь помочь мне с этим?

Спасибо.

ответ

0

Вам необходимо создать CustomBinding, которое работает через HTTP и содержит на нем элемент MessageSecurityOverHttpElement. Там вы найдете свойство NegotiateServiceCredential, которое позволит включить/отключить функцию.

Ссылка должна быть отправлена ​​на ваш адрес Custom Binding with a SecurityBindingElement. Оттуда проведите свой путь до тех пор, пока вам не удастся добавить MessageSecurityOverHttpElement.

+0

Спасибо, Хорхе. Похоже, что я должен использовать «WSDualHttpBinding», так как это единственный класс привязки, который содержит свойство безопасности для доступа к NegotiateServiceCredential. Но не удалось найти информацию о том, какой элемент привязки я должен добавить в свой customBinding, чтобы заставить его работать. К моменту, я думаю, я буду постоянно обновлять сертификат сервиса на каждом клиенте. Еще раз спасибо. –

+0

Есть ли причина, по которой вам нужен WSDualHttpBinding, и не может просто использовать WSHttpBinding? WSDualHttpBinding довольно сложно, потому что он открывает другой канал для дуплексных обратных вызовов, и если вы не можете найти какой-либо другой путь вокруг своей проблемы, вы должны действительно держаться подальше от WSDualHttpBinding :) –

+0

Так как информация о классе MessageSecurityOverHttp говорит, что он используется с wsDualHttpBinding, я didn ' Больше ничего не думай. В любом случае мы выбираем другой подход и создаем инструмент для установки сертификата удаленного сервера только в одном репозитории, и каждый клиент потребляет веб-сервис и устанавливает этот сертификат при его публикации. Спасибо за вашу помощь. –