System.DirectoryServices에 대한 코드 액세스 보안

코드 액세스 보안은 리소스와 작업을 보호하기 위해 코드에 대한 액세스를 제한하는 메커니즘입니다. 코드 액세스 보안을 통해 코드 발생 위치 및 코드 ID의 다른 측면에 따라 다양한 수준으로 코드를 신뢰할 수 있습니다. 자세한 내용은 Code Access Security을 참조하십시오.

호출자 보안 요구 사항

System.DirectoryServices.dll 및 System.DirectoryServices.Protocols.dll 라이브러리에는 System.DirectoryServices, System.DirectoryServices.ActiveDirectorySystem.DirectoryServices.Protocols 네임스페이가 구현되어 있습니다. 이것은 호출자가 라이브러리에서 노출하는 클래스, 메서드 및 속성에 액세스할 수 있도록 무제한 DirectoryServicesPermission을 갖도록 요구하는 보안 라이브러리입니다.

라이브러리가 AllowPartiallyTrustedCallersAttribute로 표시되지 않은 경우 런타임 코드 액세스 보안 시스템에서 완전 신뢰보다 낮은 권한을 받는 응용 프로그램은 공유 관리 라이브러리를 호출할 수 없습니다. 기본적으로 로컬 인트라넷이나 인터넷 영역에서 실행되는 모든 코드는 부분적으로 신뢰할 수 있습니다. .NET Framework 2.0에서 System.DirectoryServices.dll 및 System.DirectoryServices.Protocols.dll에는 AllowPartiallyTrustedCallersAttribute가 적용되어 코드는 부분적으로 신뢰할 수 있는 컨텍스트로부터 실행되거나 부분적으로 신뢰할 수 있는 코드를 통해 호출될 수 있습니다. 따라서 호출자가 무제한 DirectoryServicesPermission을 부여받는 한 호출자는 System.DirectoryServices.dll 및 System.DirectoryServices.Protocols.dll에 액세스하기 위해 완전히 신뢰할 수 있는 어셈블리일 필요는 없습니다.

사용 권한 요구

링크 요청으로 인해 런타임이 아닌 Just-In-Time 컴파일 동안 보안 검사를 수행하며 코드의 직접 실행 호출자만 검사합니다. 전체 스택 워크는 일반 요청과는 달리 링크 요청으로는 수행되지 않습니다. 링크 요청은 평균적으로 일반 요청보다 훨씬 빠르지만 링크 요청을 사용하는 코드는 여전히 보안 공격에 취약합니다. 링크 요청으로 표시되는 메서드나 클래스의 호출자는 응용 프로그램 디자이너가 필요하다고 판단하는 보안 검사를 모두 수행해야 합니다. DemandsLink Demands에 대해 자세히 비교한 내용을 보려면 Demand vs. LinkDemand를 참조하십시오.

System.DirectoryServices, System.DirectoryServices.ActiveDirectorySystem.DirectoryServices.Protocols 네임스페이스의 모든 진입점은 무제한 DirectoryServicesPermission(예: DirectoryEntry, DirectorySearcher, DirectoryContext, LdapConnectionDsmlSoapHttpConnection의 생성자)에 대한 요청을 수행합니다. 또한 요구된 다른 사용 권한에 대한 링크 요청을 수행합니다. 세 가지 네임스페이스의 클래스 및 메서드에 대한 요청 종류에 관한 자세한 내용은 System.DirectoryServices, System.DirectoryServices.ActiveDirectorySystem.DirectoryServices.Protocols 네임스페이스 참조 단원을 참조하십시오.

무제한 DirectoryServicesPermission 부여

기본적으로 완전히 신뢰할 수 있는 어셈블리에는 무제한 DirectoryServicesPermission이 부여됩니다. 이 사용 권한은 Code Access Security Policy Tool (Caspol.exe)(Caspol.exe) 같은 도구를 사용하여 다른 어셈블리에 명시적으로 부여될 수도 있습니다.

참고 항목

참조

System.DirectoryServices
System.DirectoryServices.ActiveDirectory
System.DirectoryServices.Protocols
DirectoryServicesPermission

개념

System.DirectoryServices에서 시작

기타 리소스

Code Access Security
Secure Coding Guidelines
Security Demands

Send comments about this topic to Microsoft.

Copyright © 2007 by Microsoft Corporation. All rights reserved.