TypeBuilder.IsSecuritySafeCritical 속성
정의
중요
일부 정보는 릴리스되기 전에 상당 부분 수정될 수 있는 시험판 제품과 관련이 있습니다. Microsoft는 여기에 제공된 정보에 대해 어떠한 명시적이거나 묵시적인 보증도 하지 않습니다.
현재 형식이 보안 안전에 중요한 형식인지 즉, 중요한 작업을 수행할 수 있고 투명 코드로 액세스할 수 있는지를 나타내는 값을 가져옵니다.
public:
virtual property bool IsSecuritySafeCritical { bool get(); };
public override bool IsSecuritySafeCritical { get; }
member this.IsSecuritySafeCritical : bool
Public Overrides ReadOnly Property IsSecuritySafeCritical As Boolean
속성 값
현재 형식이 보안 안전에 중요한 형식인 경우 true
이고 보안에 중요한 형식이거나 투명 형식인 경우 false
입니다.
예외
현재 동적 형식이 CreateType() 메서드를 호출하여 생성되지 않았습니다.
설명
, IsSecuritySafeCritical및 IsSecurityTransparent 속성은 IsSecurityCriticalCLR(공용 언어 런타임)에 의해 결정된 형식의 투명도 수준을 보고합니다. 이러한 속성의 조합은 다음 표에 나와 있습니다.
보안 수준 | IsSecurityCritical | IsSecuritySafeCritical | IsSecurityTransparent |
---|---|---|---|
중요 | true |
false |
false |
안전에 중요 | true |
true |
false |
투명 | false |
false |
true |
이러한 속성을 사용하는 것이 어셈블리 및 해당 형식의 보안 주석을 검사하고 현재 신뢰 수준을 확인한 다음 런타임 규칙을 복제하는 것보다 훨씬 더 간단합니다.
런타임은 어셈블리에서 투명도 수준을 평가하기 시작합니다. 예를 들어 동적 어셈블리가 보안에 중요한 경우 형식에 대한 주석은 무시되고 모든 형식은 보안에 중요합니다.
기본적으로 동적 어셈블리는 내보내는 어셈블리의 투명도를 상속합니다. , AppDomain.DefineDynamicAssembly(AssemblyName, AssemblyBuilderAccess, String, Boolean, IEnumerable<CustomAttributeBuilder>)또는 AppDomain.DefineDynamicAssembly(AssemblyName, AssemblyBuilderAccess, String, Evidence, PermissionSet, PermissionSet, PermissionSet, Boolean, IEnumerable<CustomAttributeBuilder>) 메서드 오버로드를 AppDomain.DefineDynamicAssembly(AssemblyName, AssemblyBuilderAccess, IEnumerable<CustomAttributeBuilder>)사용하고 보안 특성을 지정하여 이 기본값을 재정의할 수 있습니다. 이렇게 하면 보안 수준을 높일 수 없습니다. 즉, 투명 코드는 보안에 중요하거나 보안이 중요한 코드를 내보낼 수 없습니다. 동적 어셈블리를 만들 때 특성을 지정해야 하거나 어셈블리가 디스크에 저장되고 다시 로드될 때까지 적용되지 않습니다.
참고
기본 상속은 런타임의 투명도 평가로 제한됩니다. 동적 어셈블리에 특성이 적용되지 않습니다. 보안 특성을 추가하려면 직접 적용해야 합니다.
리플렉션 내보내기 및 투명성에 대한 자세한 내용은 리플렉션 내보내기의 보안 문제를 참조하세요. 투명성에 대한 자세한 내용은 보안 변경을 참조하세요.
적용 대상
추가 정보
.NET