2009-12-29 9 views
1

Notre application web a une DLL activex qui fonctionne dans IE. Il reçoit un nom fort et un ensemble d'autorisations personnalisées basé sur ce nom fort.site de confiance requis avec activex

L'ensemble est décoré comme ceci:

[assembly: AllowPartiallyTrustedCallers] 

et la classe des besoins de contrôle activeX cette option pour exécuter dans le navigateur:

[PrintingPermission(SecurityAction.Assert, Unrestricted = true)] 

Quand j'ajoute notre groupe de code personnalisé sous la Trusted_Zone et ajouter le site à des sites de confiance, tout fonctionne bien. Mais lorsque j'ajoute le groupe de codes sous Internet_Zone le contrôle ActiveX et supprime le domaine des sites de confiance le contrôle ActiveX ne s'exécutera pas.

Dans IE8, les zones de sécurité sont tous à leurs paramètres par défaut. Aussi lorsque je modifie les paramètres de sécurité pour "contrôles ActiveX et plug-ins" dans la zone Internet à la même que dans la zone de site approuvé, le contrôle ne fonctionne pas. Y at-il quelque chose d'autre que je dois faire, soit par caspol ou un paramètre IE pour permettre à cela de fonctionner dans la zone internet?

Répondre

2

Avez-vous ajouté le coffre-fort pour les scripts et en toute sécurité pour les catégories d'initialisation sur l'enregistrement COM (ou mis en œuvre IObjectSafety). Si vous ne le faites pas, IE ne vous fera pas confiance et refusera de le créer. Voir quelque chose comme this pour plus d'informations sur la mise les bonnes clés dans le registre.

Ou l'utilisez-vous directement dans IE? Comme en ne l'inscrivant pas mais en passant le chemin dll dans l'attribut classid? Si oui, la vie est plus difficile. IE8 ne charge plus les contrôles dotnet dans la zone Internet et il n'y a pas d'interface utilisateur pour l'activer (d'après ce que je me souviens, mais jetez un oeil dans l'éditeur de sécurité). Vous pouvez le modifier dans le registre en définissant URL Action pour URLACTION_DOTNET_USERCONTROLS pour que la zone Internet soit activée.

+0

Je l'utilise directement dans IE. La modification de la clé de registre modifie le comportement dans la zone Internet. – voam

+0

Cela signifie que vous n'utilisez pas un contrôle "ActiveX" mais plutôt un UserControl. Les UserControls sont bloqués dans la zone Internet pour des raisons de sécurité: http://blogs.msdn.com/ieinternals/archive/2009/10/09/DotNet-UserControls-Do-Not-Load-in-IE8-Internet-Zone.aspx – EricLaw

+0

@EricLaw Merci, je pense que c'est la bonne réponse. – ChrisW

Questions connexes