Вопрос

У нас есть служба шифрования, которую мы открыли через net.tcp.Большую часть времени служба используется для шифрования/дешифрования строк.Однако время от времени нам необходимо зашифровать большие документы (pdf, jpg, bmp и т. д.).

Каковы наилучшие настройки конечной точки для такого сценария?Должен ли я принять/вернуть поток?Я много читал об этом, но никто не дает указаний, что делать, если большой файл возникает нечасто.

Это было полезно?

Решение

MSDN описывает как включить потоковую передачу через WCF довольно хорошо.

Обратите внимание: если соединение между клиентом и сервером необходимо зашифровать, вам потребуется «развернуть свой собственный» механизм шифрования.По умолчанию net.tcp для шифрования требуются сертификаты X.509, которые не будут работать с потоками, поскольку этот вид шифрования должен работать со всем сообщением за один раз, а не с потоком байтов.

Это, в свою очередь, означает, что вы не сможете аутентифицировать клиента, используя механизмы безопасности WCF по умолчанию, поскольку аутентификация требует шифрования.Единственный известный мне способ решения этой проблемы — реализовать собственные расширения поведения на клиенте и сервере для обработки аутентификации.

Действительно хорошая ссылка на то, как добавлять расширения пользовательского поведения: здесь:здесь также описано, как предоставить пользовательскую конфигурацию (что, я думаю, в настоящее время не обсуждается где-либо в документах MSDN).

Другие советы

Один из шаблонов, которым вы могли бы следовать, — это иметь асинхронную службу, которая работает с файлами в общей файловой системе:

  1. Поместите файл, который нужно зашифровать, в общее расположение.
  2. Вызовите службу и попросите ее зашифровать файл, передав расположение и имя файла, а также адрес службы обратного вызова на клиенте.
  3. Служба зашифрует файл и разместит зашифрованную копию в общем месте (там же, где была размещена незашифрованная копия, или в другом месте, не имеет значения).
  4. Служба перезвонит клиенту, сообщив имя и местоположение зашифрованного файла.
  5. Клиент может получить зашифрованный файл
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top