Поделиться через


<Элемент legacyImpersonationPolicy>

Указывает, что удостоверение Windows не проходит через асинхронные точки, независимо от параметров потока для контекста выполнения в текущем потоке.

<Конфигурации>
  <Среды выполнения>
    <legacyImpersonationPolicy>

Синтаксис

<legacyImpersonationPolicy
   enabled="true|false"/>  

Атрибуты и элементы

В следующих разделах описаны атрибуты, дочерние и родительские элементы.

Атрибуты

Атрибут Описание
enabled Обязательный атрибут.

Указывает, что WindowsIdentity не проходит через асинхронные точки, независимо от ExecutionContext параметров потока в текущем потоке.

Атрибут enabled

Значение Описание
false WindowsIdentity потоки между асинхронными точками в ExecutionContext зависимости от параметров потока для текущего потока. Это значение по умолчанию.
true WindowsIdentity не проходит через асинхронные точки независимо от ExecutionContext параметров потока в текущем потоке.

Дочерние элементы

Отсутствует.

Родительские элементы

Элемент Описание
configuration Корневой элемент в любом файле конфигурации, используемом средой CLR и приложениями .NET Framework.
runtime Содержит сведения о привязке сборок и сборке мусора.

Комментарии

В платформа .NET Framework версий 1.0 и 1.1 WindowsIdentity объект не проходит через определяемые пользователем асинхронные точки. Начиная с платформа .NET Framework версии 2.0, существует ExecutionContext объект , который содержит сведения о выполняемом в данный момент потоке и проходит через асинхронные точки в домене приложения. Включается WindowsIdentity в этот контекст выполнения и, следовательно, также проходит через асинхронные точки, что означает, что если контекст олицетворения существует, он также будет выполняться.

Начиная с платформа .NET Framework 2.0, можно использовать <legacyImpersonationPolicy> элемент , чтобы указать, что WindowsIdentity он не проходит через асинхронные точки.

Примечание

Среда CLR учитывает операции олицетворения, выполняемые только с помощью управляемого кода, а не олицетворения, выполняемого вне управляемого кода, например путем вызова платформы в неуправляемый код или с помощью прямых вызовов функций Win32. Только управляемые WindowsIdentity объекты могут проходить через асинхронные точки, если alwaysFlowImpersonationPolicy элементу не присвоено значение true (<alwaysFlowImpersonationPolicy enabled="true"/>). alwaysFlowImpersonationPolicy Если задать для элемента значение true, удостоверение Windows всегда проходит через асинхронные точки независимо от того, как выполнялось олицетворение. Дополнительные сведения о потоке неуправляемого олицетворения между асинхронными точками см. в разделе <Элемент alwaysFlowImpersonationPolicy>.

Это поведение по умолчанию можно изменить двумя другими способами:

  1. В управляемом коде на основе потока.

    Вы можете подавить поток для каждого потока, изменив параметры и SecurityContext с помощью ExecutionContext.SuppressFlowметода или SecurityContext.SuppressFlowWindowsIdentitySecurityContext.SuppressFlow .ExecutionContext

  2. В вызове неуправляемого интерфейса размещения для загрузки среды CLR.

    Если для загрузки среды CLR используется неуправляемый интерфейс размещения (а не простой управляемый исполняемый файл), можно указать специальный флаг в вызове функции CorBindToRuntimeEx . Чтобы включить режим совместимости для всего процесса, задайте flags для параметра функции CorBindToRuntimeEx значение STARTUP_LEGACY_IMPERSONATION.

Дополнительные сведения см. в <разделе Элемент alwaysFlowImpersonationPolicy>.

Файл конфигурации

В приложении платформа .NET Framework этот элемент можно использовать только в файле конфигурации приложения.

Для ASP.NET приложения поток олицетворения можно настроить в файле aspnet.config, который находится в <каталоге Windows Folder>\Microsoft.NET\Framework\vx.x.xxxx.

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 через асинхронные точки.

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

См. также раздел