방법: 강력한 이름 건너뛰기 기능 비활성화
업데이트: 2008년 7월
.NET Framework 버전 3.5 서비스 팩 1(SP1)부터는 어셈블리가 완전 신뢰 AppDomain 개체(예: MyComputer 영역의 기본 AppDomain)에 로드될 때 강력한 이름 서명의 유효성이 검사되지 않습니다. 이를 강력한 이름 건너뛰기 기능이라고 합니다. 완전 신뢰 환경에서는 서명된 완전 신뢰 어셈블리에 대한 StrongNameIdentityPermission 요청이 해당 서명에 관계없이 항상 성공합니다. 유일한 제한 사항은 해당 영역이 완전 신뢰되므로 어셈블리가 완전 신뢰되어야 한다는 것입니다. 이러한 조건에서 강력한 이름은 결정적인 요소가 아니므로 유효성을 검사할 필요가 없습니다. 강력한 이름 서명의 유효성 검사를 건너뛰면 성능이 크게 향상됩니다.
건너뛰기 기능은 서명이 연기되지 않았으며 ApplicationBase 속성에 지정된 디렉터리에서 완전 신뢰 AppDomain에 로드된 모든 완전 신뢰 어셈블리에 적용됩니다.
레지스트리 키 값을 설정하여 컴퓨터의 모든 응용 프로그램에 대한 건너뛰기 기능을 재정의할 수 있습니다. 단일 응용 프로그램에 대한 설정을 재정의하려면 응용 프로그램 구성 파일을 사용합니다. 레지스트리 키에 의해 건너뛰기 기능이 비활성화된 경우 단일 응용 프로그램에서 건너뛰기 기능을 다시 사용할 수는 없습니다.
건너뛰기 기능을 재정의하면 강력한 이름이 올바른지만 검사되고 StrongNameIdentityPermission은 검사되지 않습니다. 특정 강력한 이름을 확인하려면 해당 검사를 별도로 수행해야 합니다.
중요: |
---|
강력한 이름 유효성 검사를 적용할 수 있는지 여부는 다음 절차에 설명된 대로 레지스트리 키에 의해 결정됩니다. 응용 프로그램이 해당 레지스트리 키에 액세스하는 데 필요한 ACL(액세스 제어 목록) 권한이 없는 계정을 사용하여 실행되는 경우 설정이 적용되지 않습니다. ACL 권한은 모든 어셈블리에 대해 읽을 수 있도록 이 키에 대해 구성되어야 합니다. |
모든 응용 프로그램에 대한 강력한 이름 건너뛰기 기능을 비활성화하려면
32비트 컴퓨터의 경우 시스템 레지스트리의 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework 키 아래에 하위 키를 만듭니다. 키 이름은 AllowStrongNameBypass이고 사용할 값은 DWORD 값인 0입니다.
-또는-
64비트 컴퓨터의 경우 시스템 레지스트리의 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework 키 아래에 하위 키를 만듭니다. 키 이름은 AllowStrongNameBypass이고 사용할 값은 DWORD 값인 0입니다. HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\.NETFramework 키 아래에 동일한 하위 키를 만듭니다.
단일 응용 프로그램에 대한 강력한 이름 건너뛰기 기능을 비활성화하려면
응용 프로그램 구성 파일을 열거나 만듭니다.
이 파일에 대한 자세한 내용은 응용 프로그램 구성 파일을 참조하십시오.
다음 항목을 추가합니다.
<configuration> <runtime> < bypassTrustedAppStrongNames enabled="false" /> </runtime> </configuration>
구성 파일 설정을 제거하거나 특성을 "true"로 설정하면 응용 프로그램에 대한 건너뛰기 기능을 복원할 수 있습니다.
참고: |
---|
컴퓨터에서 건너뛰기 기능이 설정된 경우에만 응용 프로그램에 대한 강력한 이름 유효성 검사를 설정하거나 해제할 수 있습니다. 컴퓨터에서 건너뛰기 기능이 해제되어 있으면 모든 응용 프로그램에서 강력한 이름의 유효성이 검사되며 단일 응용 프로그램에서 유효성 검사를 건너뛸 수 없습니다. |
참고 항목
참조
<bypassTrustedAppStrongNames> 요소
기타 리소스
변경 기록
날짜 |
변경 내용 |
이유 |
---|---|---|
2008년 7월 |
항목이 추가되었습니다. |
SP1 기능 변경 |