élément <legacyImpersonationPolicy>
Spécifie que l’identité Windows ne circule pas entre les points asynchrones, quels que soient les paramètres de flux du contexte d’exécution sur le thread actuel.
<configuration>
<
>
runtime
<legacyImpersonationPolicy>
Syntaxe
<legacyImpersonationPolicy
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. Spécifie que le WindowsIdentity ne circule pas entre les points asynchrones, quels que soient les paramètres de flux ExecutionContext sur le thread actuel. |
enabled Attribute
Valeur | Description |
---|---|
false |
WindowsIdentity flux entre des points asynchrones en fonction des paramètres de flux de ExecutionContext pour le thread actuel. Il s’agit de la valeur par défaut. |
true |
WindowsIdentity ne circule pas entre les points asynchrones, quels que soient les paramètres de flux ExecutionContext sur le thread actuel. |
É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, la 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 il circule entre des points asynchrones au sein d’un domaine d’application. Le WindowsIdentity est inclus dans ce contexte d’exécution et circule donc également entre les points asynchrones, ce qui signifie que si un contexte d’emprunt d’identité existe, il circule également.
À compter de .NET Framework 2.0, vous pouvez utiliser l’élément <legacyImpersonationPolicy>
pour spécifier que WindowsIdentity ne circule pas entre les points asynchrones.
Note
Le Common Language Runtime (CLR) est conscient des opérations d’emprunt d’identité effectuées uniquement à l’aide du code managé, et non de l’emprunt d’identité effectuée en dehors du code managé, par exemple par le biais d’un appel de plateforme à du code non managé ou via des appels directs aux fonctions Win32. Seuls les objets de WindowsIdentity managés peuvent circuler entre des points asynchrones, sauf si l’élément alwaysFlowImpersonationPolicy
a été défini sur true (<alwaysFlowImpersonationPolicy enabled="true"/>
). Définir l’élément alwaysFlowImpersonationPolicy
sur true 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é. Pour plus d’informations sur le flux d’emprunt d’identité non managé sur des points asynchrones, consultez <alwaysFlowImpersonationPolicy> Element.
Vous pouvez modifier ce comportement par défaut de deux autres façons :
Dans le code managé sur une base 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.
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 CorBindToRuntimeEx Function sur STARTUP_LEGACY_IMPERSONATION.
Pour plus d’informations, consultez la <alwaysFlowImpersonationPolicy> Element.
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 le comportement hérité qui ne circule pas l’identité Windows entre les points asynchrones.
<configuration>
<runtime>
<legacyImpersonationPolicy enabled="true"/>
</runtime>
</configuration>