ServiceContractAttribute.ProtectionLevel 속성
정의
중요
일부 정보는 릴리스되기 전에 상당 부분 수정될 수 있는 시험판 제품과 관련이 있습니다. Microsoft는 여기에 제공된 정보에 대해 어떠한 명시적이거나 묵시적인 보증도 하지 않습니다.
계약에 대한 바인딩이 ProtectionLevel 속성 값을 지원해야 하는지 여부를 지정합니다.
public:
property System::Net::Security::ProtectionLevel ProtectionLevel { System::Net::Security::ProtectionLevel get(); void set(System::Net::Security::ProtectionLevel value); };
public System.Net.Security.ProtectionLevel ProtectionLevel { get; set; }
member this.ProtectionLevel : System.Net.Security.ProtectionLevel with get, set
Public Property ProtectionLevel As ProtectionLevel
속성 값
ProtectionLevel 값 중 하나입니다. 기본값은 None입니다.
예외
값이 ProtectionLevel 값 중 하나가 아닌 경우
설명
이 ProtectionLevel 속성을 사용하여 계약을 노출하는 엔드포인트에 대해 계약 바인딩에 암호화, 디지털 서명 또는 둘 다 필요한 정도를 지정합니다. 여기에 설정된 값은 오류를 포함한 모든 작업 메시지의 기본값입니다.
런타임 시 보호 동작은 다음 속성에 설정된 보호 수준 값의 조합이라는 점을 기억해야 합니다. 이러한 속성에는 계층 구조가 있습니다. 가장 바깥쪽 값을 설정하면 더 좁은 범위에 대해 다른 값이 명시적으로 설정되지 않는 한 모든 좁은 범위에 대한 기본 설정이 설정됩니다. 이 경우 외부 값은 특별히 설정된 것을 제외하고 모든 좁은 범위의 기본값으로 유지됩니다.
예를 들어 설정 ProtectionLevel.EncryptAndSign 되고 다른 좁은 범위에 보호 수준 설정이 없는 경우 ServiceContractAttribute.ProtectionLevel 작업 계약의 모든 메시지가 암호화되고 서명됩니다. 그러나 이러한 작업 중 하나에 설정된 ProtectionLevel.Sign경우 해당 작업에 OperationContractAttribute 대한 메시지는 서명되지만 계약의 다른 모든 메시지는 암호화되고 서명됩니다.
보호 수준 및 해당 가정 및 범위에 대한 자세한 내용은 보호 수준 이해를 참조하세요.
이러한 값이 설정된 범위는 다음과 같습니다.
ServiceContractAttribute.ProtectionLevel
OperationContractAttribute.ProtectionLevel
FaultContractAttribute.ProtectionLevel
MessageContractAttribute.ProtectionLevel
의 속성System.ServiceModel.MessageHeaderAttribute입니다MessageContractMemberAttribute.ProtectionLevel.
의 속성System.ServiceModel.MessageBodyMemberAttribute입니다MessageContractMemberAttribute.ProtectionLevel.
계약에 명시적으로 지정된 보호 수준이 없고 기본 바인딩이 보안(전송 또는 메시지 수준)을 지원하는 경우 전체 계약에 대한 효과적인 보호 수준이 됩니다 ProtectionLevel.EncryptAndSign. 바인딩이 보안(예: BasicHttpBinding)을 지원하지 않는 경우 유효 System.Net.Security.ProtectionLevel 는 ProtectionLevel.None 전체 계약에 대한 것입니다. 결과적으로 엔드포인트 바인딩에 따라 계약이 지정한 경우에도 클라이언트에서 다른 메시지 또는 전송 수준 보안 보호가 필요할 수 있습니다 ProtectionLevel.None.