Domanda

Abbiamo un servizio di crittografia che abbiamo esposto su net.tcp.Nella maggior parte dei casi, il servizio viene utilizzato per crittografare/decrittografare le stringhe.Tuttavia, di tanto in tanto, abbiamo la necessità di crittografare documenti di grandi dimensioni (pdf, jpg, bmp, ecc.).

Quali sono le migliori impostazioni dell'endpoint per uno scenario come questo?Devo accettare/restituire uno streaming?Ho letto molto a riguardo, ma nessuno fornisce indicazioni su cosa fare quando il file di grandi dimensioni non si verifica frequentemente.

È stato utile?

Soluzione

MSDN descrive come abilitare lo streaming su WCF piuttosto bene.

Nota: se il collegamento tra client e server deve essere crittografato, dovrai "impostare il tuo" meccanismo di crittografia.Il predefinito net.tcp la crittografia richiede certificati X.509, che non funzioneranno con i flussi poiché questo tipo di crittografia deve funzionare su un intero messaggio in una volta sola anziché su un flusso di byte.

Ciò, a sua volta, significa che non sarà possibile autenticare il client utilizzando i meccanismi di sicurezza WCF predefiniti poiché l'autenticazione richiede la crittografia.L'unica soluzione che conosco è implementare le proprie estensioni di comportamento personalizzate su client e server per gestire l'autenticazione.

Un ottimo riferimento su come aggiungere estensioni di comportamento personalizzate è Qui:questo documenta anche come fornire una configurazione personalizzata (qualcosa che non credo sia discusso da nessuna parte nei documenti MSDN in questo momento).

Altri suggerimenti

Uno schema che potresti seguire è quello di avere un servizio asincrono che funzioni su file in una posizione di file system condivisa:

  1. Posiziona il file da crittografare in una posizione condivisa
  2. Chiama il servizio e digli di crittografare il file, passando sia la posizione che il nome del file, sia l'indirizzo di un servizio di callback sul client
  3. Il servizio crittograferà il file e posizionerà la copia crittografata in una posizione condivisa (la stessa in cui è stata posizionata la copia non crittografata o diversa, non importa)
  4. Il servizio richiamerebbe il client, fornendo il nome e la posizione del file crittografato
  5. Il client può recuperare il file crittografato
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top