.NET Framework의 버전 3.5 서비스 팩 1(SP1)부터는 어셈블리가 AppDomain 영역의 기본 AppDomain 개체와 같은 완전 신뢰 개체에 로드될 때 강력한 이름 서명이 MyComputer 검증되지 않습니다. 이를 강력한 이름 바이패스 기능이라고 합니다. 완전 신뢰 환경에서는 서명에 관계없이 서명된 완전 신뢰 어셈블리에 대한 StrongNameIdentityPermission 요구가 항상 성공합니다. 유일한 제한 사항은 해당 영역이 완전히 신뢰할 수 있기 때문에 어셈블리를 완전히 신뢰할 수 있어야 한다는 것입니다. 강력한 이름은 이러한 조건에서 결정 요소가 아니므로 유효성을 검사할 이유가 없습니다. 강력한 이름 서명의 유효성 검사를 무시하면 성능이 크게 향상됩니다.
바이패스 기능은 지연 서명되지 않은 모든 완전 신뢰 어셈블리에 적용되며, 이러한 어셈블리는 해당 속성에 지정된 디렉터리에서 모든 완전 신뢰 AppDomain 로 로드됩니다 ApplicationBase.
레지스트리 키 값을 설정하여 컴퓨터의 모든 애플리케이션에 대한 바이패스 기능을 재정의할 수 있습니다. 애플리케이션 구성 파일을 사용하여 단일 애플리케이션에 대한 설정을 재정의할 수 있습니다. 레지스트리 키에서 사용하지 않도록 설정한 경우 단일 애플리케이션에 대한 바이패스 기능을 복원할 수 없습니다.
바이패스 기능을 재정의하면 강력한 이름은 정확성에 대해서만 유효성이 검사되고, StrongNameIdentityPermission에 대해 확인되지 않습니다. 특정 강력한 이름을 확인하려면 해당 검사를 별도로 수행해야 합니다.
중요합니다
강력한 이름 유효성 검사를 강제 적용하는 기능은 다음 절차에 설명된 대로 레지스트리 키에 따라 달라집니다. 애플리케이션이 해당 레지스트리 키에 액세스할 수 있는 ACL(액세스 제어 목록) 권한이 없는 계정으로 실행 중인 경우 이 설정은 효과가 없습니다. 모든 어셈블리에 대해 읽을 수 있도록 이 키에 대해 ACL 권한이 구성되어 있는지 확인해야 합니다.
모든 애플리케이션에 대해 강력한 이름 바이패스 기능을 사용하지 않도록 설정
32비트 컴퓨터의 시스템 레지스트리에서 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework 키 아래에 이름이
AllowStrongNameBypass0인 DWORD 항목을 만듭니다.64비트 컴퓨터의 시스템 레지스트리에서 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework 및 HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\.NETFramework 키 아래에 이름이 0인
AllowStrongNameBypassDWORD 항목을 만듭니다.
단일 애플리케이션에 대해 강력한 이름 무시 기능 사용 안 함
애플리케이션 구성 파일을 열거나 만듭니다.
이 파일에 대한 자세한 내용은 앱 구성의 Application Configuration Files 섹션을 참조하세요.
다음 항목을 추가합니다.
<configuration> <runtime> <bypassTrustedAppStrongNames enabled="false" /> </runtime> </configuration>
구성 파일 설정을 제거하거나 특성을 .로 설정하여 애플리케이션에 대한 바이패스 기능을 복원할 수 있습니다 true.
비고
컴퓨터에서 바이패스 기능을 활성화한 경우에만 애플리케이션에 대한 강력한 이름 검사를 켜거나 끌 수 있습니다. 컴퓨터에 대한 바이패스 기능이 해제된 경우 모든 애플리케이션에 대해 강력한 이름의 유효성이 검사되며 단일 애플리케이션에 대한 유효성 검사를 무시할 수 없습니다.
참고하십시오
.NET