Ответ 1
Во-первых, для этого нет серебряных пуль. У каждого варианта есть свои недостатки. Microsoft рекомендует один из двух вариантов:
- Использовать защиту режима сообщения с токенами контекста безопасности состояния (с включенной или без защищенной беседы)
- Настройте службу на использование безопасности на уровне транспорта.
В то время как защита вашего сервиса с использованием безопасности на транспортном уровне будет защищена от человека в среднем сценарии, он не защитит вас от взломанного клиента. Таким образом, это не надежное решение и использование токенов контекста безопасности состояния является лучшим способом для двух. Это требует некоторых соображений при разработке и развертывании.
Как я уже говорил в своем предыдущем ответе, для этого нет серебряных пуль. Вот еще один вариант (который вы, возможно, уже рассмотрели), используя параметры detectReplays, maxClockSkew, replayWindow и replayCacheSize. Хотя я не уверен в его надежности в сценарии WebFarm, он должен работать, учитывая основную работу WCF. Вот краткая статья которая демонстрирует ее. Недостатком этой опции является то, что когда у вас есть клиент в другой часовой пояс на сервере, вы получите сбои, если ваш maxClockSkew не установлен, чтобы разрешить для разницы в часовых поясах.