Partager via


<alwaysFlowImpersonationPolicy>, élément

Spécifie que l’identité Windows circule toujours entre des points asynchrones, quelle que soit la façon dont l’emprunt d’identité a été effectué.

<configuration>
   < > runtime
     <alwaysFlowImpersonationPolicy>

Syntaxe

<alwaysFlowImpersonationPolicy
  enabled="true|false"/>  

Attributs et éléments

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

Attributs

Attribut Description
enabled Attribut obligatoire.

Indique si l’identité Windows circule entre des points asynchrones.

enabled Attribute

Valeur Description
false L’identité Windows ne circule pas entre les points asynchrones, sauf si l’emprunt d’identité est effectué via des méthodes gérées telles que Impersonate. Il s’agit de la valeur par défaut.
true L’identité Windows circule toujours entre les points asynchrones, quelle que soit la façon dont l’emprunt d’identité a été effectué.

Éléments enfants

Aucun.

Éléments parents

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

Remarques

Dans les versions 1.0 et 1.1 du .NET Framework, l’identité Windows ne circule pas entre les points asynchrones. Dans .NET Framework version 2.0, il existe un objet ExecutionContext qui contient des informations sur le thread en cours d’exécution et le transfère à des points asynchrones au sein d’un domaine d’application. Le WindowsIdentity circule également dans le cadre des informations qui circulent entre les points asynchrones, à condition que l’emprunt d’identité ait été obtenu à l’aide de méthodes managées telles que Impersonate et non pas par d’autres moyens tels que l’appel de plateforme à des méthodes natives. Cet élément est utilisé pour spécifier que l’identité Windows circule entre les points asynchrones, quelle que soit la façon dont l’emprunt d’identité a été obtenu.

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

  1. Dans le code managé sur une base par thread.

    Vous pouvez supprimer le flux par thread en modifiant les paramètres de ExecutionContext et de SecurityContext à l’aide de la méthode ExecutionContext.SuppressFlow, SecurityContext.SuppressFlowWindowsIdentityou 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 (au lieu d’un exécutable managé simple) est utilisée pour charger le CLR, vous pouvez spécifier un indicateur spécial dans l’appel à la fonction CorBindToRuntimeEx fonction. Pour activer le mode de compatibilité pour l’ensemble du processus, définissez le paramètre flags pour Fonction CorBindToRuntimeEx sur STARTUP_ALWAYSFLOW_IMPERSONATION.

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 trouvé dans le répertoire <dossier Windows>\Microsoft.NET\Framework\vx.x.xxxx.

ASP.NET par défaut 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>  

Dans ASP.NET, si vous souhaitez autoriser le flux d’emprunt d’identité à la place, 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 que l’identité Windows circule entre des points asynchrones, même lorsque l’emprunt d’identité est obtenu par le biais de moyens autres que les méthodes managées.

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

Voir aussi