<Элемент 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>.
Это поведение по умолчанию можно изменить двумя другими способами:
В управляемом коде на основе потока.
Вы можете подавить поток для каждого потока, изменив параметры и SecurityContext с помощью ExecutionContext.SuppressFlowметода или SecurityContext.SuppressFlowWindowsIdentitySecurityContext.SuppressFlow .ExecutionContext
В вызове неуправляемого интерфейса размещения для загрузки среды 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>