<alwaysFlowImpersonationPolicy> Element

가장을 수행하는 방법과 관계없이 Windows ID가 항상 비동기 지점 간을 흐르도록 지정합니다.

<configuration>
  <runtime>
    <alwaysFlowImpersonationPolicy>

구문

<alwaysFlowImpersonationPolicy
  enabled="true|false"/>  

특성 및 요소

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

특성

특성 설명
enabled 필수 특성입니다.

Windows ID가 비동기 지점 간에 흐르는지 여부를 나타냅니다.

enabled 특성

Description
false Impersonate와 같은 관리되는 메서드를 통해 가장을 수행하지 않는 한 Windows ID는 비동기 지점 간에 흐르지 않습니다. 기본값입니다.
true 가장을 수행하는 방법과 관계없이 Windows ID가 항상 비동기 지점 간을 흐릅니다.

자식 요소

없음

부모 요소

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

설명

.NET Framework 버전 1.0 및 1.1에서는 Windows ID가 비동기 지점 간에 흐르지 않습니다. .NET Framework 버전 2.0에서는 현재 실행 중인 스레드에 대한 정보를 포함하는 ExecutionContext 개체가 있으며 애플리케이션 도메인 내의 비동기 지점 간에 흐릅니다. WindowsIdentity 또한 비동기 지점 간에 흐르는 정보의 일부로 흐르며, 네이티브 메서드에 대한 플랫폼 호출과 같은 다른 수단을 통하지 않고 Impersonate와 같은 관리되는 메서드를 사용하여 가장을 수행했습니다. 이 요소는 가장이 수행된 방법에 관계없이 Windows ID가 비동기 지점 간에 흐르도록 지정하는 데 사용됩니다.

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

  1. 스레드 단위로 관리되는 코드에서

    ExecutionContext.SuppressFlow, SecurityContext.SuppressFlowWindowsIdentity 또는 SecurityContext.SuppressFlow 메서드를 사용하여 ExecutionContextSecurityContext 설정을 수정하여 스레드 기반의 흐름을 억제할 수 있습니다.

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

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

구성 파일

.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>  
    <alwaysFlowImpersonationPolicy enabled="true"/>  
  </runtime>  
</configuration>  

참고 항목