2008-09-05 4 views
6

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

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

ответ

4

MSDN описывает how to enable streaming over WCF довольно хорошо.

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

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

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

1

Один шаблон, который вы могли бы следовать, чтобы иметь асинхронный сервис, который работает с файлами на общей папке файловой системы:

  1. Поместите файл, который будет зашифрован на общем месте
  2. Вызовите сервис и сказать он для шифрования файла, передачи как местоположения, так и имени файла, а также добавлений службы обратного вызова на клиенте
  3. Служба будет шифровать файл и поместить зашифрованную копию в общую папку (то же самое, незашифрованный был помещен или другой, не имеет значения)
  4. Служба будет перезвонить клиенту, давая имя и расположение зашифрованного файла
  5. Клиент может получить зашифрованный файл
Смежные вопросы