Если вы хотите поддерживать поток транзакций, вам нужно использовать wsHttpBinding. basicHttpBinding - это просто веб-служба XML basic . MS утверждает, что поддерживает Базовый профиль WS-I v1.1, но больше похож на v1.2, так как вы можете использовать MTOM с этой привязкой.
Оба имеют высокую степень взаимодействия: wsHttpBinding является реализацией многочисленных стандартов WS- *; то, что он не поддерживает, - старые клиенты SOAP-only. Это включает любого, кто использует ссылку на веб-сервис в стиле .NET 2.0, и множество форм SOAP-прокси на основе Java.
С безопасностью вы начинаете получать больше преимуществ от отображения wsHttpBinding. BasicHttpBinding не может выполнять учетные данные Windows, хотя, как вы заметили, это ограничит вашу совместимость. Я подозреваю, что вам будет очень трудно аутентифицировать клиентов, отличных от Windows, с использованием учетных данных Windows, но, как вы указали, это единственный способ добиться олицетворения. Для клиентов, не являющихся WCF, работающих в Windows, вам может повезти больше, поскольку клиент все еще может получить доступ к токену аутентификации вошедшего в систему пользователя.
Лучший способ увидеть, как ваши режимы безопасности будут влиять на клиентов, не являющихся WCF, - это опубликовать привязки для вашей службы и запустить для них инструмент Java wsimport
; если это может привести к созданию рабочего прокси из вашего WSDL, то вы сможете использовать службу с любого клиента.