элемент <legacyImpersonationPolicy>
Указывает, что удостоверение Windows не выполняется через асинхронные точки независимо от параметров потока для контекста выполнения в текущем потоке.
>
конфигурации<
<среды выполнения>
<устаревшей версииImpersonationPolicy>
Синтаксис
<legacyImpersonationPolicy
enabled="true|false"/>
Атрибуты и элементы
В следующих разделах описаны атрибуты, дочерние элементы и родительские элементы.
Атрибуты
Атрибут | Описание |
---|---|
enabled |
Обязательный атрибут. Указывает, что WindowsIdentity не выполняется через асинхронные точки независимо от параметров потока ExecutionContext в текущем потоке. |
Атрибут с поддержкой
Ценность | Описание |
---|---|
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> Элемент.
Это поведение по умолчанию можно изменить двумя другими способами:
В управляемом коде на основе потока.
Поток можно отключить на основе потока, изменив параметры ExecutionContext и SecurityContext с помощью метода ExecutionContext.SuppressFlow, SecurityContext.SuppressFlowWindowsIdentity или SecurityContext.SuppressFlow.
В вызове неуправляемого интерфейса размещения для загрузки среды CLR.
Если для загрузки среды CLR используется неуправляемый интерфейс размещения (вместо простого управляемого исполняемого файла), можно указать специальный флаг в вызове функции CorBindToRuntimeEx. Чтобы включить режим совместимости для всего процесса, задайте параметр
flags
для функции CorBindToRuntimeEx значение STARTUP_LEGACY_IMPERSONATION.
Дополнительные сведения см. в <элементе alwaysFlowImpersonationPolicy>.
Файл конфигурации
В приложении .NET Framework этот элемент можно использовать только в файле конфигурации приложения.
Для приложения ASP.NET поток олицетворения можно настроить в файле aspnet.config, который находится в каталоге <папки Windows>\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>
См. также
- Настройка приложений с помощью файлов конфигурации
- схема параметров среды выполнения
- схемы файла конфигурации
- < элемент alwaysFlowImpersonationPolicy>