Elemento <legacyImpersonationPolicy>
Especifica que la identidad de Windows no fluye por puntos asincrónicos, independientemente de la configuración del flujo del contexto de ejecución del subproceso actual.
<configuration>
<runtime>
<legacyImpersonationPolicy>
Sintaxis
<legacyImpersonationPolicy
enabled="true|false"/>
Atributos y elementos
En las siguientes secciones se describen los atributos, los elementos secundarios y los elementos primarios.
Atributos
Atributo | Descripción |
---|---|
enabled |
Atributo necesario. Especifica que WindowsIdentity no fluye por puntos asincrónicos, independientemente de la configuración del flujo de ExecutionContext del subproceso actual. |
Atributo enabled
Valor | Descripción |
---|---|
false |
WindowsIdentity fluye a través de puntos asincrónicos en función de la configuración de flujo de ExecutionContext del subproceso actual. Este es el valor predeterminado. |
true |
WindowsIdentity no fluye por puntos asincrónicos, independientemente de la configuración del flujo de ExecutionContext del subproceso actual. |
Elementos secundarios
Ninguno.
Elementos primarios
Elemento | Descripción |
---|---|
configuration |
Elemento raíz de cada archivo de configuración usado por las aplicaciones de Common Language Runtime y .NET Framework. |
runtime |
Contiene información del enlace del ensamblado y de la recolección de elementos no utilizados. |
Comentarios
En las versiones 1.0 y 1.1 de .NET Framework, WindowsIdentity no fluye a través de ningún punto asincrónico definido por el usuario. A partir de .NET Framework, versión 2.0, hay un objeto ExecutionContext que contiene información sobre el subproceso que se está ejecutando actualmente y fluye entre puntos asincrónicos dentro de un dominio de aplicación. El objeto WindowsIdentity se incluye en este contexto de ejecución y, por tanto, también fluye a través de los puntos asincrónicos, lo que significa que si existe un contexto de suplantación, también fluirá.
A partir de .NET Framework 2.0, puede usar el elemento <legacyImpersonationPolicy>
para especificar que WindowsIdentity no fluye entre puntos asincrónicos.
Nota
Common Language Runtime (CLR) es consciente de las operaciones de suplantación realizadas con solo código administrado, no de la suplantación realizada fuera del código administrado, como mediante la invocación de plataforma a código no administrado o a través de llamadas directas a funciones Win32. Solo los objetos administrados WindowsIdentity pueden fluir entre puntos asincrónicos, a menos que el elemento alwaysFlowImpersonationPolicy
se haya establecido en true (<alwaysFlowImpersonationPolicy enabled="true"/>
). La configuración del elemento alwaysFlowImpersonationPolicy
en true especifica que la identidad de Windows siempre fluye por puntos asincrónicos, independientemente de cómo se realizó la suplantación. Para obtener más información sobre el flujo de suplantación no administrada entre puntos asincrónicos, vea <alwaysFlowImpersonationPolicy> (elemento).
Puede modificar este comportamiento predeterminado de otras dos maneras:
En código administrado por subproceso.
Puede suprimir el flujo por subproceso modificando la configuración ExecutionContext y SecurityContext mediante el método ExecutionContext.SuppressFlow, SecurityContext.SuppressFlowWindowsIdentity o SecurityContext.SuppressFlow.
En la llamada a la interfaz de hospedaje no administrada para cargar Common Language Runtime (CLR).
Si se usa una interfaz de hospedaje no administrada (en lugar de un archivo ejecutable administrado simple) para cargar CLR, puede especificar una marca especial en la llamada a la función CorBindToRuntimeEx. Para habilitar el modo de compatibilidad para todo el proceso, establezca el parámetro
flags
de la función CorBindToRuntimeEx en STARTUP_LEGACY_IMPERSONATION.
Para obtener más información, vea <alwaysFlowImpersonationPolicy> (elemento).
Archivo de configuración
En una aplicación de .NET Framework, este elemento solo se puede usar en el archivo de configuración de la aplicación.
Para una aplicación de ASP.NET, el flujo de suplantación se puede configurar en el archivo aspnet.config que se encuentra en el <directorio Carpeta> de Windows\Microsoft.NET\Framework\vx.x.xxxx.
ASP.NET deshabilita de forma predeterminada el flujo de suplantación en el archivo aspnet.config mediante las siguientes opciones de configuración:
<configuration>
<runtime>
<legacyImpersonationPolicy enabled="true"/>
<alwaysFlowImpersonationPolicy enabled="false"/>
</runtime>
</configuration>
En ASP.NET, si desea permitir el flujo de suplantación en su lugar, debe usar explícitamente las siguientes opciones de configuración:
<configuration>
<runtime>
<legacyImpersonationPolicy enabled="false"/>
<alwaysFlowImpersonationPolicy enabled="true"/>
</runtime>
</configuration>
Ejemplo
El siguiente ejemplo se muestra cómo especificar el comportamiento heredado que no hace fluir la identidad de Windows a través de puntos asíncronos.
<configuration>
<runtime>
<legacyImpersonationPolicy enabled="true"/>
</runtime>
</configuration>