Элемент <legacyImpersonationPolicy>
Указывает, что удостоверение Windows не проходит через асинхронные точки, независимо от параметров потока для контекста выполнения в текущем потоке.
<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 также проходит как часть информации, проходящей через асинхронные точки. Это означает, что если имеется контекст олицетворения, то он также пройдет через асинхронные точки. Этот элемент используется для указания, что 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".
Пример
В следующем примере показано, как задать прежнее поведение, при котором удостоверение Windows не проходит через асинхронные точки.
<configuration>
<runtime>
<legacyImpersonationPolicy enabled="true"/>
</runtime>
</configuration>
См. также
Ссылки
Схема параметров среды выполнения