2009-09-17 3 views
0

WCF를 사용하여 웹 서비스에 연결 중입니다. 서버에서 올바르게 인증하고 요청을 보내며 서명 된 응답을 다시받을 수 있습니다.WCF를 사용하여 서버에서 암호화되지 않은 응답 허용

유일한 것은 응답 본문이 암호화되지 않는다는 것입니다. Ok, 괜찮아. 내 서비스가 아니라 내 일을 어떻게 부르는 지, 나는 단지 클라이언트를 쓰고있다.

문제는 WCF가 응답 메시지의 'Body'부분이 암호화되지 않았 음을 나타내는 MessageSecurityException을 계속 제공한다는 것입니다. 어디로 내 app.config에서 내가 암호화되지 않은 두 개의 비행 쓰레기를 줄 수 없다는 것을 지정할 수 있습니까?

레코드의 경우 customBinding을 사용하고 있습니다.

답변

2

WCF의 "EncryptAndSign"기본값 인 보호 수준이 서비스 계약에 설정됩니다. 서비스 메소드를 정의하여 인터페이스 :

[ServiceContract(Name="YourServiceContract", 
       Namespace="http://www.yourdomain.com/2009/09/WCF", 
       ProtectionLevel=ProtectionLevel.None)] 
public interface IYourService 
{ 
    string SayHello(string inputString); 
} 

당신은 그것을가 "ProtectionLevel.EncryptAndSign"설정할 수 있습니다 (기본값), "로그인"또는 "없음".

그러나 이 요청에 대해 하나의 응답으로 설정 될 수없고 응답 용으로 설정 될 수 없습니다. 즉, 보호 수준이 WCF 통신의 양방향에 적용됩니다.

이 항목을 설명하는 Fundamentals of WCF Security을 확인하십시오 (특히 2 페이지 참조).

마크 보안 메시지를 보내고 무담보로 응답을 허용 할 수있는 방법이 있습니다

1

. 그러나 Microsoft 기술 지원부에 요청해야하는 핫픽스가 필요합니다. 이것은 recured 요청을 요구하지만 안전하지 않은 결함을 돌려 보내는 정부 서비스로 작업 할 때 나를 구해 냈습니다. 핫픽스에 대한 자세한 내용은 here을 참조하십시오.

+0

매우 흥미로운 사실! 고마워. –

+0

정말 고마워요. – diadem

관련 문제