다음을 통해 공유


legacyImpersonationPolicy> 요소 <

현재 스레드의 실행 컨텍스트에 대한 흐름 설정에 관계없이 Windows ID가 비동기 지점 간에 흐르지 않도록 지정합니다.

<구성>
   <런타임>
     <legacyImpersonationPolicy>

통사론

<legacyImpersonationPolicy
   enabled="true|false"/>  

특성 및 요소

다음 섹션에서는 특성, 자식 요소 및 부모 요소에 대해 설명합니다.

특성

속성 묘사
enabled 필수 특성입니다.

현재 스레드의 ExecutionContext 흐름 설정에 관계없이 WindowsIdentity 비동기 지점 간에 흐르지 않도록 지정합니다.

enabled 특성

묘사
false WindowsIdentity 현재 스레드에 대한 ExecutionContext 흐름 설정에 따라 비동기 지점 간에 흐릅니다. 기본값입니다.
true WindowsIdentity 현재 스레드의 ExecutionContext 흐름 설정에 관계없이 비동기 지점 간에 흐르지 않습니다.

자식 요소

없음.

부모 요소

요소 묘사
configuration 공용 언어 런타임 및 .NET Framework 애플리케이션에서 사용하는 모든 구성 파일의 루트 요소입니다.
runtime 어셈블리 바인딩 및 가비지 수집에 대한 정보를 포함합니다.

발언

.NET Framework 버전 1.0 및 1.1에서는 WindowsIdentity 사용자 정의 비동기 지점 간에 흐르지 않습니다. .NET Framework 버전 2.0부터 현재 실행 중인 스레드에 대한 정보가 포함된 ExecutionContext 개체가 있으며 애플리케이션 도메인 내의 비동기 지점 간에 흐릅니다. WindowsIdentity 이 실행 컨텍스트에 포함되므로 비동기 지점 간에도 흐릅니다. 즉, 가장 컨텍스트가 있는 경우 해당 컨텍스트도 흐릅니다.

.NET Framework 2.0부터 <legacyImpersonationPolicy> 요소를 사용하여 WindowsIdentity 비동기 지점 간에 흐르지 않도록 지정할 수 있습니다.

메모

CLR(공용 언어 런타임)은 비관리 코드에 대한 플랫폼 호출 또는 Win32 함수에 대한 직접 호출과 같이 관리 코드 외부에서 수행되는 가장이 아니라 관리 코드만 사용하여 수행되는 가장 작업을 인식합니다. alwaysFlowImpersonationPolicy 요소가 true(<alwaysFlowImpersonationPolicy enabled="true"/>)로 설정되지 않은 한 관리되는 WindowsIdentity 개체만 비동기 지점 간에 흐를 수 있습니다. alwaysFlowImpersonationPolicy 요소를 true로 설정하면 가장 수행 방법에 관계없이 Windows ID가 항상 비동기 지점 간에 흐르도록 지정합니다. 비동기 지점에서 관리되지 않는 가장을 흐르는 방법에 대한 자세한 내용은 <alwaysFlowImpersonationPolicy> 요소참조하세요.

이 기본 동작은 다음과 같은 두 가지 방법으로 변경할 수 있습니다.

  1. 스레드 단위로 관리되는 코드입니다.

    ExecutionContext.SuppressFlow, SecurityContext.SuppressFlowWindowsIdentity 또는 SecurityContext.SuppressFlow 메서드를 사용하여 ExecutionContextSecurityContext 설정을 수정하여 스레드별로 흐름을 표시하지 않을 수 있습니다.

  2. 관리되지 않는 호스팅 인터페이스를 호출하여 CLR(공용 언어 런타임)을 로드합니다.

    관리되지 않는 호스팅 인터페이스(간단한 관리형 실행 파일 대신)를 사용하여 CLR을 로드하는 경우 CorBindToRuntimeEx 함수 함수에 대한 호출에서 특수 플래그를 지정할 수 있습니다. 전체 프로세스에 대한 호환성 모드를 사용하도록 설정하려면 CorBindToRuntimeEx 함수 대한 flags 매개 변수를 STARTUP_LEGACY_IMPERSONATION 설정합니다.

자세한 내용은 alwaysFlowImpersonationPolicy> 요소 <참조하세요.

구성 파일

.NET Framework 애플리케이션에서 이 요소는 애플리케이션 구성 파일에서만 사용할 수 있습니다.

ASP.NET 애플리케이션의 경우 <Windows 폴더>\Microsoft.NET\Framework\vx.x.xxxx 디렉터리에 있는 aspnet.config 파일에서 가장 흐름을 구성할 수 있습니다.

ASP.NET 기본적으로 다음 구성 설정을 사용하여 aspnet.config 파일에서 가장 흐름을 사용하지 않도록 설정합니다.

<configuration>  
   <runtime>  
      <legacyImpersonationPolicy enabled="true"/>  
      <alwaysFlowImpersonationPolicy enabled="false"/>  
   </runtime>  
</configuration>  

ASP.NET 대신 가장 흐름을 허용하려면 다음 구성 설정을 명시적으로 사용해야 합니다.

<configuration>  
   <runtime>  
      <legacyImpersonationPolicy enabled="false"/>  
      <alwaysFlowImpersonationPolicy enabled="true"/>  
   </runtime>  
</configuration>  

본보기

다음 예제에서는 비동기 지점에서 Windows ID를 전달하지 않는 레거시 동작을 지정하는 방법을 보여 줍니다.

<configuration>  
   <runtime>  
      <legacyImpersonationPolicy enabled="true"/>  
   </runtime>  
</configuration>  

참고 항목