문제

net.tcp를 통해 노출된 암호화 서비스가 있습니다.대부분의 경우 서비스는 문자열을 암호화/해독하는 데 사용됩니다.그러나 때때로 대용량 문서(pdf, jpg, bmp 등)를 암호화해야 할 때가 있습니다.

이와 같은 시나리오에 가장 적합한 끝점 설정은 무엇입니까?스트림을 수락/반환해야 합니까?이에 대해 많이 읽었지만 대용량 파일이 자주 발생하지 않을 때 어떻게 해야 하는지에 대한 지침을 제공하는 사람은 아무도 없습니다.

도움이 되었습니까?

해결책

MSDN에서는 다음과 같이 설명합니다. WCF를 통한 스트리밍을 활성화하는 방법 오히려 잘.

클라이언트와 서버 간의 링크를 암호화해야 하는 경우 "자신만의" 암호화 메커니즘을 적용해야 합니다.기본값 net.tcp 암호화에는 X.509 인증서가 필요합니다. 이러한 종류의 암호화는 바이트 스트림이 아닌 전체 메시지에 대해 한 번에 작동해야 하기 때문에 스트림에서는 작동하지 않습니다.

이는 인증에 암호화가 필요하므로 기본 WCF 보안 메커니즘을 사용하여 클라이언트를 인증할 수 없음을 의미합니다.내가 아는 유일한 해결 방법은 인증을 처리하기 위해 클라이언트와 서버에 고유한 사용자 지정 동작 확장을 구현하는 것입니다.

사용자 정의 동작 확장을 추가하는 방법에 대한 정말 좋은 참고 자료는 다음과 같습니다. 여기:이 문서에는 사용자 지정 구성을 제공하는 방법도 나와 있습니다(현재 MSDN 문서 어디에서도 논의되지 않은 내용입니다).

다른 팁

따를 수 있는 한 가지 패턴은 공유 파일 시스템 위치에 있는 파일에 대해 작동하는 비동기 서비스를 갖는 것입니다.

  1. 암호화할 파일을 공유 위치에 배치
  2. 서비스를 호출하고 파일의 위치와 이름, 클라이언트의 콜백 서비스 주소를 모두 전달하여 파일을 암호화하도록 지시합니다.
  3. 서비스는 파일을 암호화하고 암호화된 복사본을 공유 위치에 배치합니다(암호화되지 않은 파일이 배치된 위치와 동일하거나 다른 위치는 중요하지 않음).
  4. 서비스는 클라이언트에 콜백하여 암호화된 파일의 이름과 위치를 제공합니다.
  5. 클라이언트는 암호화된 파일을 검색할 수 있습니다.
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top