Hôtes de domaine d'application
Chaque application .NET Framework s'exécute dans un domaine d'application sous le contrôle d'un hôte qui crée le domaine d'application et y charge les assemblys. L'hôte accède aux informations sur le code (preuve), telles que la zone d'origine du code, ou les signatures numériques des assemblys dans le domaine d'application. Un hôte de confiance est un hôte qui a l'autorisation de fournir le Common Language Runtime avec ce type d'information. La classe System.AppDomain fournit la fonctionnalité de domaine d'application utilisée par les hôtes.
Le tableau suivant indique les types d'hôtes d'application.
Hôte de domaine d'application | Description |
---|---|
Hôte de navigateur (par exemple, Microsoft Internet Explorer) |
Exécute le code dans le contexte d'un site Web. |
Hôtes conçus de manière personnalisée |
Crée des domaines et charge des assemblys dans les domaines, y compris des assemblys dynamiques. Peuvent être écrits en code managé ou non managé. |
Hôte de serveur (par exemple, ASP.NET) |
Exécute le code qui gère les demandes envoyées à un serveur. |
Hôte de shell |
Lance des applications (fichiers .exe) à partir du shell. |
Après avoir créé un nouveau domaine d'application, un hôte peut spécifier la stratégie à appliquer au code dans le domaine d'application. Cette stratégie est toujours soumise à la stratégie d'entreprise, de l'ordinateur et de l'utilisateur. Un hôte peut réduire le jeu d'autorisations permises par la stratégie de l'ordinateur et de l'utilisateur, mais il ne peut pas en augmenter l'étendue. La stratégie peut être définie une seule fois pour un domaine d'application. Pour définir une stratégie de domaine d'application, l'hôte doit obtenir l'autorisation de sécurité (fourni au travers de la classe SecurityPermission) pour la stratégie du domaine de contrôle.
Après la définition de la stratégie du domaine d'application, tous les assemblys chargés à la suite reçoivent des autorisations sous la nouvelle stratégie (stratégie d'entreprise, de l'ordinateur, de l'utilisateur et de domaine d'application). Les assemblys chargés précédemment obtiennent des autorisations sous la stratégie préexistante (stratégie d'entreprise, de l'ordinateur et de l'utilisateur uniquement). Les autorisations octroyées à ces assemblys ne sont pas réévaluées sous la stratégie du domaine d'application.
Un hôte de confiance peut fournir des informations (preuve) au runtime à propos des assemblys qui sont chargés dans le domaine d'application. Si un hôte de domaine ne possède pas l'autorisation SecurityPermission appropriée pour la preuve de contrôle, le runtime utilise la sécurité appliquée sur l'hôte pour déterminer la sécurité à appliquer à l'assembly.
Dans certaines situations, la preuve qui serait normalement fournie par un hôte de domaine d'application de confiance est en fait fournie par le programme de chargement. En règle générale, après la création d'un domaine d'application, l'hôte de domaine d'application charge le premier (principal) assembly dans le domaine d'application et lance l'exécution à partir de cet assembly. Lorsque le code du premier assembly fait référence au code d'un autre assembly, le programme de chargement résout la référence, charge l'assembly approprié dans le domaine d'application, et fournit la preuve concernant l'assembly au runtime. Dans cette situation, l'hôte de domaine d'application de confiance qui a fourni la preuve pour l'assembly d'origine ne fournit pas la preuve pour les assemblys chargés par la suite.