Когда вы указываете безопасность сообщения, оно всегда ожидает сертификат службы. Причина в том, что имя пользователя и пароль следует отправлять по защищенному каналу, в противном случае пароль отправляется в виде простого текста, и все в сети могут это видеть.
Все привязки по умолчанию позволят вам отправлять имя пользователя и пароль только при использовании HTTPS (режим безопасности установлен на TransportWithMessageCredential
- для него также требуется сертификат) или если вы используете WS-Security, где требуется сертификат службы (режим безопасности установить на Message
).
В WCF 4 (и со специальным исправлением KB в более ранних версиях) вы можете создать пользовательскую привязку , где имя пользователя и пароль могут быть отправлены по незащищенному каналу, но это почти то же самое, что и отсутствие защиты. Его следует использовать, только если ваш канал защищен какой-либо другой инфраструктурой, такой как VPN.