WCF: используйте пользовательский UserNamePasswordValidationMode без SSL-сертификата - PullRequest
2 голосов
/ 05 сентября 2011

Для клиента я должен использовать WCF для связи между клиентом и серверным приложением.

Мое приложение использовало WSHttpBinding для связи, но теперь клиент не устанавливает никакой SSLсертификат, потому что:

  • Сервер доступен только для VPN, поэтому связь уже зашифрована
  • Их компьютер не находится в домене, поэтому они не могут использовать домен CA
  • Имя сервера не имеет публичного IP-адреса, поэтому они не могут купить SSL-сертификат для этого ip

Поэтому я начал искать, как не использовать какие-либоSSL-сертификат, но у меня возникли некоторые проблемы:

Я обнаружил, что должен использовать настройки «TransportCredentialOnly» для режима безопасности, но эти параметры недоступны для «WsHttpBinding».Поэтому я решил использовать basicHttpBinding, у которого есть эта опция, но кажется, что basicHttpBinding не предоставляет возможности использовать CustomUserNamePasswordValidator.

Так как я могу это сделать?Все результаты поиска, которые я обнаружил, либо используют сертификат SSL, либо не имеют customUserNameValidator.

Большое спасибо за любую помощь.

1 Ответ

2 голосов
/ 05 сентября 2011

Это очень редкий сценарий, когда отправка незащищенного имени пользователя и пароля имеет смысл.Для этого вам нужна пользовательская привязка, потому что привязки по умолчанию не позволяют этого. Этот ответ содержит две опции, которые вы можете использовать.Просто имейте в виду, что первая опция позволит вам отправлять незашифрованный транспорт в виде обычного текста имени пользователя и пароля, но это нарушит генерацию WSDL (это ошибка в WCF).

...