Я сталкиваюсь со следующими проблемами, пытаясь работать через болото настроек в WCF ...
Я создал службу клиент-сервер WCF, используя привязку NetTcp. Я не вносил никаких изменений в настройки безопасности, и при работе на одной машине он работает очень хорошо. Однако, когда я запустил мой клиент с другого компьютера, он пожаловался, что серверу не понравились отправленные учетные данные безопасности.
Я понимаю сейчас , что NetTCP по умолчанию "защищен" и что мой клиент передавал неверные данные безопасности - а именно имя пользователя и пароль Windows (или некоторую форму проверки подлинности домена) моему сервер, который, поскольку они не работают в одном домене, не понравился бы.
Однако я не понимаю следующее:
Я не указал никакой защиты в привязке - стандартные настройки ожидают отправки имени пользователя или пароля Windows?
У меня не установлен сертификат на моем сервере - я понимаю, что для привязки NetTCP необходим какой-либо открытый закрытый ключ для защиты учетных данных, - но все же это работало, когда и клиент, и сервер находились на одной машине - как это было данные становятся зашифрованными? Или хочет, чтобы WCF знал, что он находится на той же машине и шифрование не требуется?
Я должен был установить мой режим безопасности на моем клиенте и сервере как «нет», и они хорошо подключились. Но есть ли способ зашифровать мои данные без сертификата?
Наконец ... в чем разница между безопасностью транспорта и сообщений?
Чтобы проверить мое понимание (простите за сценарий!) Безопасности сообщений, я отправил письмо от лица А к человеку В и закодировал письмо, чтобы убедиться, что, если кто-то его перехватит, они не смогут его прочитать? Безопасность на транспорте - если я решу отправить мое письмо на вооруженном транспорте, чтобы никто не смог получить его по пути?
Возможно ли иметь какую-либо форму шифрования в WCF без сертификата? Мой проект - частный проект, и я не хочу покупать сертификат, и данные в любом случае не настолько чувствительны, так что это только для моих собственных знаний.