質問

net.tcp 経由で公開した暗号化サービスがあります。ほとんどの場合、このサービスは文字列の暗号化/復号化に使用されます。ただし、大きなドキュメント (pdf、jpg、bmp など) を暗号化する必要がある場合があります。

このようなシナリオに最適なエンドポイント設定は何ですか?ストリームを受け入れるか返す必要がありますか?これについてたくさんの本を読みましたが、大きなファイルが頻繁に発生しない場合の対処方法については誰も教えてくれません。

役に立ちましたか?

解決

MSDN の説明 WCF 経由のストリーミングを有効にする方法 むしろうまくいきました。

クライアントとサーバー間のリンクを暗号化する必要がある場合は、「独自の」暗号化メカニズムを構築する必要があることに注意してください。デフォルト net.tcp 暗号化には X.509 証明書が必要ですが、この種の暗号化はバイトのストリームではなくメッセージ全体を一度に処理する必要があるため、ストリームでは機能しません。

これは、認証には暗号化が必要なため、既定の WCF セキュリティ メカニズムを使用してクライアントを認証できないことを意味します。私が知っている唯一の回避策は、クライアントとサーバーに独自のカスタム動作拡張機能を実装して認証を処理することです。

カスタム動作拡張機能を追加する方法に関する非常に良い参考資料は、次のとおりです。 ここ:これには、カスタム構成を提供する方法も記載されています (これについては、現時点では MSDN ドキュメントのどこにも記載されていないと思います)。

他のヒント

従うことのできる 1 つのパターンは、共有ファイル システムの場所にあるファイルを処理する非同期サービスを用意することです。

  1. 暗号化するファイルを共有場所に置きます
  2. サービスを呼び出して、ファイルの場所と名前の両方、およびクライアント上のコールバック サービスのアドレスを渡して、ファイルを暗号化するように指示します。
  3. サービスはファイルを暗号化し、暗号化されたコピーを共有の場所に配置します (暗号化されていないコピーが配置された場所と同じか、異なるかは関係ありません)。
  4. サービスはクライアントにコールバックし、暗号化されたファイルの名前と場所を通知します。
  5. クライアントは暗号化されたファイルを取得できます
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top