2012-02-09 2 views

답변

5

메시지 계약은 메시지의 헤더 및/또는 본문이 디지털 서명되고 암호화되어야하는지 여부를 나타낼 수 있습니다.

MessageHeaderAttribute 및 MessageBodyMemberAttribute 특성에서 System.ServiceModel.MessageContractMemberAttribute.ProtectionLevel 속성을 설정하면됩니다. 이 속성은 System.Net.Security.ProtectionLevel 형식의 열거 형이며 None (암호화 또는 서명 없음), Sign (디지털 서명 만) 또는 EncryptAndSign (암호화 및 디지털 서명 모두)로 설정할 수 있습니다. 기본값은 EncryptAndSign입니다.

이러한 보안 기능을 사용하려면 바인딩 및 동작을 올바르게 구성해야합니다. 적절한 구성없이 이러한 보안 기능을 사용하는 경우 (예 : 자격 증명을 제공하지 않고 메시지에 서명하려는 경우) 유효성 검사시 예외가 발생합니다.

메시지 헤더의 경우 보호 수준은 각 헤더에 대해 개별적으로 결정됩니다.

메시지 본문 부분의 경우 보호 수준을 "최소 보호 수준"으로 생각할 수 있습니다. 본문에는 본문 부분의 수와 관계없이 하나의 보호 수준 만 있습니다. 본문의 보호 수준은 모든 본문 부분의 가장 높은 ProtectionLevel 속성 설정에 의해 결정됩니다. 그러나 각 본문 부분의 보호 수준을 필요한 실제 최소 보호 수준으로 설정해야합니다. 더 자세한 예제는 this 문서를 참조하십시오.