TypeBuilder.IsSecurityTransparent 속성

정의

현재 형식이 투명하여 중요한 작업을 수행할 수 없는지 여부를 나타내는 값을 가져옵니다.

public:
 virtual property bool IsSecurityTransparent { bool get(); };
public override bool IsSecurityTransparent { get; }
member this.IsSecurityTransparent : bool
Public Overrides ReadOnly Property IsSecurityTransparent As Boolean

속성 값

true형식이 보안 투명이면 이고, 그렇지 않으면 . false

예외

메서드를 호출하여 현재 동적 형식을 CreateType() 만들지 않았습니다.

설명

IsSecuritySafeCriticalIsSecurityTransparent 속성은 IsSecurityCriticalCLR(공용 언어 런타임)에 의해 결정된 형식의 투명도 수준을 보고합니다. 이러한 속성의 조합은 다음 표에 나와 있습니다.

보안 수준 IsSecurityCritical 보안은 안전하게 중요합니까? IsSecurityTransparent
중요 true false false
안전 필수 true true false
투명 false false true

이러한 속성을 사용하는 것은 어셈블리 및 해당 형식의 보안 주석을 검사하고, 현재 신뢰 수준을 확인하고, 런타임의 규칙을 복제하는 것보다 훨씬 간단합니다.

런타임은 어셈블리에서 투명도 수준을 평가하기 시작합니다. 예를 들어 동적 어셈블리가 보안에 중요한 경우 형식에 대한 주석은 무시되고 모든 형식은 보안에 중요합니다.

기본적으로 동적 어셈블리는 내보내는 어셈블리의 투명도를 상속합니다. 또는 메서드 오버로드를 AppDomain.DefineDynamicAssembly(AssemblyName, AssemblyBuilderAccess, IEnumerable<CustomAttributeBuilder>)AppDomain.DefineDynamicAssembly(AssemblyName, AssemblyBuilderAccess, String, Boolean, IEnumerable<CustomAttributeBuilder>)AppDomain.DefineDynamicAssembly(AssemblyName, AssemblyBuilderAccess, String, Evidence, PermissionSet, PermissionSet, PermissionSet, Boolean, IEnumerable<CustomAttributeBuilder>) 사용하고 보안 특성을 지정하여 이 기본값을 재정의할 수 있습니다. 이렇게 하면 보안 수준을 높일 수 없습니다. 즉, 투명 코드는 보안에 중요하거나 보안이 안전한 중요한 코드를 내보낼 수 없습니다. 동적 어셈블리를 만들 때 특성을 지정해야 합니다. 그렇지 않으면 어셈블리가 디스크에 저장되고 다시 로드될 때까지 적용되지 않습니다.

메모

기본 상속은 런타임의 투명도 평가로 제한됩니다. 동적 어셈블리에 특성이 적용되지 않습니다. 보안 특성을 추가하려면 직접 적용해야 합니다.

리플렉션 내보내기 및 투명성에 대한 자세한 내용은 리플렉션 내보내기의 보안 문제를 참조하세요. 투명성에 대한 자세한 내용은 보안 변경 내용을 참조하세요.

적용 대상

추가 정보