Partage via


<legacyImpersonationPolicy>, élément

Spécifie que l’identité Windows n’est pas transmise entre des points asynchrones, indépendamment des paramètres de flux du contexte d’exécution sur le thread actif.

<configuration>
  <runtime>
    <legacyImpersonationPolicy>

Syntaxe

<legacyImpersonationPolicy
   enabled="true|false"/>  

Attributs et éléments

Les sections suivantes décrivent des attributs, des éléments enfants et des éléments parents.

Attributs

Attribut Description
enabled Attribut requis.

Spécifie que WindowsIdentity ne circule pas entre des points asynchrones, indépendamment des paramètres de flux ExecutionContext sur le thread actif.

Attribut enabled

Valeur Description
false WindowsIdentity circule entre des points asynchrones en fonction des paramètres de flux ExecutionContext pour le thread actuel. Il s’agit de la valeur par défaut.
true WindowsIdentity ne circule pas entre des points asynchrones, indépendamment des paramètres de flux ExecutionContext sur le thread actif.

Éléments enfants

Aucune.

Éléments parents

Élément Description
configuration Élément racine de chaque fichier de configuration utilisé par le Common Language Runtime et les applications .NET Framework.
runtime Contient des informations sur les liaisons d’assembly et l’opération garbage collection.

Notes

Dans .NET Framework versions 1.0 et 1.1, WindowsIdentity ne circule pas entre les points asynchrones définis par l’utilisateur. À compter de .NET Framework version 2.0, il existe un objet ExecutionContext qui contient des informations sur le thread en cours d’exécution et qui circule entre les points asynchrones au sein d’un domaine d’application. WindowsIdentity est inclus dans ce contexte d’exécution et circule donc aussi entre les points asynchrones, ce qui signifie que si un contexte d’emprunt d’identité existe, il circulera également.

À compter de .NET Framework 2.0, vous pouvez utiliser l’élément <legacyImpersonationPolicy> pour spécifier que WindowsIdentity ne circule pas entre des points asynchrones.

Notes

Le common language runtime (CLR) a connaissance des opérations d’emprunt d’identité effectuées à l’aide de code managé uniquement, et non de l’emprunt d’identité effectué en dehors du code managé, par exemple via un appel de plateforme à du code non managé ou via des appels directs à des fonctions Win32. Seuls les objets WindowsIdentity managés peuvent circuler entre des points asynchrones, sauf si l’élément alwaysFlowImpersonationPolicy a été défini sur true (<alwaysFlowImpersonationPolicy enabled="true"/>). La définition de l’élément alwaysFlowImpersonationPolicy sur true spécifie que l’identité Windows circule toujours entre des points asynchrones, indépendamment du mode d’emprunt d’identité utilisé. Pour plus d’informations sur le flux d’emprunt d’identité non managé entre des points asynchrones, consultez <alwaysFlowImpersonationPolicy>, élément.

Vous pouvez modifier ce comportement par défaut de deux autres façons :

  1. Dans du code managé par thread.

    Vous pouvez supprimer le flux par thread en modifiant les paramètres ExecutionContext et SecurityContext à l’aide de la méthode ExecutionContext.SuppressFlow, SecurityContext.SuppressFlowWindowsIdentity ou SecurityContext.SuppressFlow.

  2. Dans l’appel à l’interface d’hébergement non managée pour charger le Common Language Runtime (CLR).

    Si une interface d’hébergement non managée (plutôt qu’un simple exécutable managé) est utilisée pour charger le CLR, vous pouvez spécifier un indicateur spécial dans l’appel à la fonction CorBindToRuntimeEx. Pour activer le mode de compatibilité pour l’ensemble du processus, définissez le paramètre flags de la fonction CorBindToRuntimeEx sur STARTUP_LEGACY_IMPERSONATION.

Pour plus d’informations, consultez < alwaysFlowImpersonationPolicy>, élément.

Fichier de configuration

Dans une application .NET Framework, cet élément peut être utilisé uniquement dans le fichier de configuration de l’application.

Pour une application ASP.NET, le flux d’emprunt d’identité peut être configuré dans le fichier aspnet.config qui se trouve dans le répertoire <Dossier Windows>\Microsoft.NET\Framework\vx.x.xxxx.

Par défaut, ASP.NET désactive le flux d’emprunt d’identité dans le fichier aspnet.config à l’aide des paramètres de configuration suivants :

<configuration>  
   <runtime>  
      <legacyImpersonationPolicy enabled="true"/>  
      <alwaysFlowImpersonationPolicy enabled="false"/>  
   </runtime>  
</configuration>  

Si vous voulez autoriser le flux d’emprunt d’identité Dans ASP.NET, vous devez utiliser explicitement les paramètres de configuration suivants :

<configuration>  
   <runtime>  
      <legacyImpersonationPolicy enabled="false"/>  
      <alwaysFlowImpersonationPolicy enabled="true"/>  
   </runtime>  
</configuration>  

Exemple

L’exemple suivant montre comment spécifier le comportement hérité qui ne fait pas circuler l’identité Windows entre des points asynchrones.

<configuration>  
   <runtime>  
      <legacyImpersonationPolicy enabled="true"/>  
   </runtime>  
</configuration>  

Voir aussi