На самом ли базовом уровне правильно, что WCF использует Binary (Net.Tcp), HTTP или MSMQ для передачи моего сообщения по сети?
Вы путаете транспортный уровень с механизмом сериализации. WCF-транспорты Опции: TCP, Именованные каналы, HTTP и MSMQ. Сериализация WCF : двоичный, текстовый (включая SOAP, POX и JSON) и MTOM.
Однако верно ли, что во всех случаях независимо от того, как данные передаются в самом сообщении в формате SOAP с заголовками и телом? Так что это своего рода сообщение XML, которое передается либо в HTTP / S, либо в двоичном формате.
Нет. WCF использует класс Message как элементарный элемент для связи. Это SOAP как в структуре, но это не формат сериализации, как SOAP.
Является ли Net.Tcp хорошим выбором для моего клиент-серверного приложения - оно похоже на приложение мессенджера в том смысле, что все клиенты являются удаленными пользователями на другой стороне брандмауэра моего сервера. Большинство вещей, которые я читаю, говорят об использовании WS * и HTTP.
Похоже, что TCP не будет хорошим выбором. Брандмауэры могут усложнить TCP для вас, если вы не сможете управлять своим сервером через порт 80 или 443. По своему личному опыту я бы также рекомендовал не использовать WCF с привязкой TCP в развертываниях в Интернете. Когда соединение TCP потеряно, WCF заставляет вас перепрыгивать через множество обручей, чтобы перехватить и восстановить его. Привязки HTTP намного проще в управлении.
Защищен ли Net.Tcp стандартно и без сертификатов? - то есть - люди не могут слушать по проводам и декодировать данные, поступающие в и из.
Связывание NetTCP по умолчанию защищено с помощью TLS .
Можно ли отправить имя пользователя и пароль, используя net.tcp и без установленного сертификата?
Вы можете использовать предварительно установленный сертификат для аутентификации с помощью привязки TCP. Вы также можете добавить имя пользователя и пароль к заголовкам сообщений, но это отдельная вещь.
Если это так, я предполагаю, что могу подключить это к своему провайдеру членства и аутентифицировать доступ к каждому методу при реализации моего контракта на обслуживание.
Вы можете извлечь заголовки сообщений, используя OperationContext и извлечь любую информацию, которая вам нравится, и использовать ее с вашим поставщиком аутентификации.
Я предполагаю, что при защите имени пользователя и пароля прокси инициализируется с именем пользователя и паролем, и эта информация отправляется при каждом запросе.
и
Затем мой провайдер членства будет вызываться для каждого вызова метода и делать все, что ему нужно, чтобы получить разрешение для метода.
Похоже, вы хотите взглянуть на Как: использовать поставщика членства ASP.NET .