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