Как использовать WCF, чтобы компьютер «позвонил домой»? - PullRequest
0 голосов
/ 30 ноября 2011

Я разрабатываю решение, которое будет использовать WCF, чтобы все компьютеры в моей организации периодически «звонили домой». Предположим для обсуждения, что к каждому компьютеру в моей организации подключен датчик погоды. Цель этого приложения состоит в том, чтобы каждый компьютер связывался с центральным сервером, чтобы сообщить о погоде в его местоположении. Данные для передачи кодируются в виде строки.

Предположим, что у меня есть служба Windows, которая вызывает метод SendWeatherReport один раз в день. Сигнатура этой функции:

void SendWeatherReport(string report);

Предположим, что я настроил метод WCF со следующим интерфейсом:

[ServiceContract]
public interface IWeatherReportReceiver
{
    [OperationContract]
    void GetReport(string report);
}

У меня есть следующие требования:

1) Моя информация о погоде является частной и конфиденциальной; он должен быть зашифрован в целях безопасности.

2) Информация о погоде будет передаваться через Интернет. Компьютер, на котором запущена служба WCF для получения отчета, будет example.com.

3) Отчет о погоде должен пройти через некоторые чрезмерно настроенные брандмауэры на пути к серверу.

Теперь, когда я объяснил свои требования, пожалуйста, объясните мне, как я могу настроить конфигурацию конечной точки для удовлетворения этих требований.

Чтобы удовлетворить (1), я считаю, что мне нужно будет использовать привязку net tcp. Для (3), возможно, я могу настроить эту привязку для работы через порт 80, 443 или какой-либо другой часто используемый порт. Моя главная проблема в том, что я не знаю, как настроить программное обеспечение для идентификации себя на сервере WCF ...

Ответы [ 2 ]

3 голосов
/ 30 ноября 2011

WsHttpBinding может шифровать сообщения, даже без https.

Вам необходимо создать Binding с SecurityMode = "Message" , если вы хотите использовать шифрование SOAP, или SecurityMode = "Transport" , если вы хотите (и можете) использовать https Взгляните на Как: установить режим безопасности

Мне кажется, что использовать протокол HTTP будет намного проще для развертывания двоичного протокола TCP, поскольку прокси-серверы часто допускают только http-трафик.

Относительно аутентификации это зависит :) Самый безопасный механизм - это использовать сертификат клиента, но нужен ли он вам по сравнению со стандартной аутентификацией пользователя / пароля? (и вся его инфраструктура, необходимая для работы)

2 голосов
/ 30 ноября 2011

Звучит как идеальное приложение для Сервисная шина Microsoft .

...