Numéro d'article: 216434 - Dernière mise à jour: lundi 23 janvier 2006 - Version: 4.0

INFO : Procédure utilisée par Internet Explorer pour déterminer si des contrôles ActiveX sont fiables

Ancien nº de publication de cet article : F216434
Agrandir tout | Réduire tout

Résumé

Lorsque vous utilisez des contrôles ActiveX dans une page Web, selon le niveau de sécurité employé, le message d'avertissement ci-dessous peut s'afficher dans Internet Explorer :
Un objet ActiveX présent sur cette page n'est peut-être pas sûr. Voulez-vous lui permettre d'initialiser et d'être accédé par les scripts ?
Cet article explique comment Internet Explorer détermine si un contrôle ActiveX est considéré comme étant fiable pour l'écriture de scripts et l'initialisation.

Plus d'informations

Il existe deux façons de marquer un contrôle comme étant fiable pour l'écriture de scripts et l'initialisation :
  • Implémenter l'interface IObjectSafety.
  • Fournir les clés de Registre suivantes pour le CLSID du contrôle sous la section Catégories implémentées :
    • La clé ci-dessous permet de marquer le contrôle comme étant fiable pour l'écriture de scripts :
      {7DD95801-9882-11CF-9FA9-00AA006C42C4}
    • La clé ci-dessous permet de marquer le contrôle comme étant fiable pour l'initialisation à partir de données persistantes :
      {7DD95802-9882-11CF-9FA9-00AA006C42C4}
Microsoft recommande d'implémenter IObjectSafety pour marquer un contrôle comme étant fiable ou non fiable. Vous empêchez ainsi les autres utilisateurs de reconditionner le contrôle et de le marquer comme étant fiable alors que ce n'est pas le cas.

L'interface IObjectSafety permet à un conteneur de récupérer les fonctions d'initialisation et d'écriture de scripts du contrôle par l'intermédiaire de sa méthode SetInterfaceSafetyOptions. Dans un premier temps, Internet Explorer vérifie si un contrôle implémente ou non l'interface IObjectSafety. Le cas échéant, Internet Explorer appelle SetInterfaceSafetyOptions pour que les interfaces IPersist vérifient si l'objet est fiable pour l'initialisation. Lorsqu'un contrôle fait tout d'abord l'objet d'un script, Internet Explorer appelle en premier lieu SetInterfaceSafetyOptions sur l'interface IDispatchEx du contrôle. En cas d'échec, il appelle SetInterfaceSafetyOptions sur l'interface IDispatch.

Si le contrôle retourne une valeur indiquant qu'il n'est pas fiable pour l'une des interfaces, Internet Explorer avertit l'utilisateur en fonction de ses paramètres de sécurité pour la zone correspondante (Internet, Intranet local, etc.).

Si le contrôle n'implémente pas l'interface IObjectSafety, Internet Explorer recherche sous la section Catégories implémentées du contrôle les clés mentionnées ci-dessus. Si ces clés sont absentes, Internet Explorer avertit l'utilisateur en fonction des paramètres de sécurité.

REMARQUE : l'implémentation de l'interface IObjectSafety est toujours prioritaire. Si un contrôle implémente l'interface IObjectSafety et retourne une valeur indiquant qu'il n'est pas fiable pour les interfaces IDispatch ou IPersist, les clés de Registre sont ignorées même si elles sont présentes dans la section Catégories implémentées.

Dans certains cas, il se peut qu'un contrôle soit agrégé « à l'aveugle » et l'agrégation peut passer les appels de fonction QueryInterface directement au contrôle agrégé. Si le contrôle agrégé implémente l'interface IObjectSafety et se marque lui-même comme n'étant pas fiable, les entrées de Registre de l'agrégation sont ignorées. Dans ce scénario, vous pouvez implémenter IObjectSafety de façon explicite dans l'agrégation et exposer uniquement les méthodes fiables du contrôle agrégé.

Références

Pour plus d'informations, reportez-vous à la section « Component Development » sur le site Web MSDN (Microsoft Developer Network) Workshop à l'adresse suivante (en anglais) :
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnanchor/html/componentdevelopmentank.asp (http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnanchor/html/componentdevelopmentank.asp)
Pour plus d'informations, cliquez sur les numéros ci-dessous pour afficher les articles correspondants dans la Base de connaissances Microsoft.
161873  (http://support.microsoft.com/kb/161873/ ) COMMENT FAIRE : Marquer des contrôles MFC comme étant fiables pour l'écriture de scripts/l'initialisation
168371  (http://support.microsoft.com/kb/168371/ ) COMMENT FAIRE : Contrôles ATL marqués par IObjectSafety comme étant fiables pour l'initialisation
182598  (http://support.microsoft.com/kb/182598/ ) COMMENT FAIRE : Implémenter IObjectSafety dans des contrôles Visual Basic
(c) Microsoft Corporation 1999, Tous droits réservés. Contribution de Kusuma Vellanki, Microsoft Corporation.


Les informations contenues dans cet article s'appliquent au(x) produit(s) suivant(s):
  • Microsoft Internet Explorer 4.0 Édition 128 bits
  • Microsoft Internet Explorer 4.01 Service Pack 2
  • Microsoft Internet Explorer 4.01 Service Pack 1
  • Microsoft Internet Explorer 5.0
  • Microsoft Internet Explorer 5.01
  • Microsoft Internet Explorer (Programming) 5.01 SP1
  • Microsoft Internet Explorer 5.5
Mots-clés : 
kbcode kbctrlcreate kbdownload kbfaq kbfaq kbinfo kbsecurity KB216434
L'INFORMATION CONTENUE DANS CE DOCUMENT EST FOURNIE PAR MICROSOFT SANS GARANTIE D'AUCUNE SORTE, EXPLICITE OU IMPLICITE. L'UTILISATEUR ASSUME LE RISQUE DE L'UTILISATION DU CONTENU DE CE DOCUMENT. CE DOCUMENT NE PEUT ETRE REVENDU OU CEDE EN ECHANGE D'UN QUELCONQUE PROFIT.
Retired KB ArticleExclusion de responsabilité concernant les contenus obsolètes dans la Base de connaissances
Cet article concerne des produits pour lesquels Microsoft n'offre plus de support. Il est par conséquent fourni « en l'état » et ne sera plus mis à jour.
 

Traductions disponibles

 

Related Support Centers