<Элемент 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 проходит через асинхронные точки независимо от того, как было достигнуто олицетворение.
Это поведение по умолчанию можно изменить двумя другими способами:
В управляемом коде для каждого потока.
Поток можно подавить для каждого потока, изменив ExecutionContext параметры и SecurityContext с помощью ExecutionContext.SuppressFlowметода , SecurityContext.SuppressFlowWindowsIdentityили SecurityContext.SuppressFlow .
В вызове неуправляемого интерфейса размещения для загрузки среды CLR.
Если для загрузки среды CLR используется неуправляемый интерфейс размещения (а не простой управляемый исполняемый файл), можно указать специальный флаг в вызове функции CorBindToRuntimeEx . Чтобы включить режим совместимости для всего процесса, задайте
flags
для параметра функцииSTARTUP_ALWAYSFLOW_IMPERSONATION
CorBindToRuntimeEx значение .
Файл конфигурации
В приложении платформа .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>