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


<Элемент alwaysFlowImpersonationPolicy>

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

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

Синтаксис

<alwaysFlowImpersonationPolicy
  enabled="true|false"/>  

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

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

Атрибуты

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

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

Атрибут enabled

Значение Описание
false Удостоверение Windows не проходит через асинхронные точки, если олицетворение не выполняется с помощью управляемых методов, таких как Impersonate. Это значение по умолчанию.
true Удостоверение Windows всегда проходит через асинхронные точки независимо от того, как выполнялось олицетворение.

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

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

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

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

Комментарии

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

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

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

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

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

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

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

В приложении платформа .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>  
    <alwaysFlowImpersonationPolicy enabled="true"/>  
  </runtime>  
</configuration>  

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