Pergunta

Temos um serviço de criptografia que expusemos em net.tcp.Na maioria das vezes, o serviço é usado para criptografar/descriptografar strings.Porém, de vez em quando, precisamos criptografar documentos grandes (pdf, jpg, bmp, etc).

Quais são as melhores configurações de endpoint para um cenário como este?Devo aceitar/devolver um stream?Já li muito sobre isso, mas ninguém dá orientação sobre o que fazer quando o arquivo grande não ocorre com frequência.

Foi útil?

Solução

MSDN descreve como habilitar o streaming pelo WCF muito bem.

Observe que, se o link entre o cliente e o servidor precisar ser criptografado, você precisará "criar seu próprio" mecanismo de criptografia.O padrão net.tcp a criptografia requer certificados X.509, que não funcionam com fluxos, pois esse tipo de criptografia precisa funcionar em uma mensagem inteira de uma só vez, em vez de em um fluxo de bytes.

Isso, por sua vez, significa que você não poderá autenticar o cliente usando os mecanismos de segurança padrão do WCF, pois a autenticação requer criptografia.A única solução alternativa que conheço é implementar suas próprias extensões de comportamento personalizadas no cliente e no servidor para lidar com a autenticação.

Uma referência realmente boa sobre como adicionar extensões de comportamento personalizado é aqui:isso também documenta como fornecer configuração personalizada (algo que não acho que seja discutido em nenhum lugar dos documentos do MSDN no momento).

Outras dicas

Um padrão que você pode seguir é ter um serviço assíncrono que funcione em arquivos em um local de sistema de arquivos compartilhado:

  1. Coloque o arquivo a ser criptografado em um local compartilhado
  2. Chame o serviço e peça para criptografar o arquivo, passando a localização e o nome do arquivo e o endereço de um serviço de retorno de chamada no cliente
  3. O serviço criptografaria o arquivo e colocaria a cópia criptografada em um local compartilhado (o mesmo onde o não criptografado foi colocado ou diferente, não importa)
  4. O serviço ligaria de volta para o cliente, fornecendo o nome e a localização do arquivo criptografado
  5. O cliente pode recuperar o arquivo criptografado
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top