<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 :
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.
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 surSTARTUP_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>