2009-06-26 7 views
1

je l'ai mis en place un contrôle activeX pour fonctionner sur une page Web. Le serveur est capable de servir cette page Web à lui-même, mais d'autres machines sur l'intranet et Internet ne sont pas en mesure d'y accéder.CASPOL, FullTrust et l'exécution d'un contrôle ActiveX dans IE avec FullTrust basé sur l'URL

Les paramètres Caspol ressemblent à ceci:

Groupes de code:

1. All code: FullTrust 
    1.1. Zone - MyComputer: FullTrust 
     1.1.1. StrongName - (omitted) : FullTrust 
     1.1.2. StrongName - 00000000000000000400000000000000: FullTrust 
    1.2. Zone - Intranet: FullTrust 
     1.2.1. All code: Same site Web 
     1.2.2. All code: Same directory FileIO - 'Read, PathDiscovery' 
    1.3. Zone - Internet: Internet 
     1.3.1. All code: Same site Web 
    1.4. Zone - Untrusted: Nothing 
    1.5. Zone - Trusted: Internet 
     1.5.1. All code: Same site Web 
    1.6. Url - http://MYSERVERNAME/APPLICATIONNAME/*: FullTrust 
Success 

L'application que je suis en train d'accéder est un groupe 1.6. Est-ce que je fais quelque chose de mal ici?

[Modifier] Il convient de mentionner que l'erreur IEDebug Ouvrez une session sur une machine qui tente d'accéder au contrôle de l'intranet affiche une longue exception. Le plus remarquable de ce être:

System.Net.WebPermission 
The first permission that failed was: 
<IPermission class="System.Net.WebPermission, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" 
version="1"> 
+0

j'ai eu des problèmes similaires obtenir un contrôle au travail, et dans notre cas, nous avons dû changer http: // myservername/APPLICATIONNAME/* http: // myservername/* Assurez-vous également que vous avez une règle pour HTTPS si vous utilisez SSL. Quelque chose d'autre pourrait mal se passer dans votre cas car vous avez FullTrust au plus haut niveau. – BeWarned

Répondre

4

Il y a longtemps que j'ai lu quelque part que pour usercontrols .Net, la preuve URL ne fonctionne pas. Seules les preuves de site et de zone fonctionnent.

caspol -machine -quiet -addgroup Trusted_Zone -site mysite.com FullTrust -name mysite -description "Code group granting trust to code from mysite.com" 

Vous pouvez le faire pour chaque zone.

Lorsque vous utilisez IE8, assurez-vous mysite.com est ajouté aux sites de confiance Liste 3. Je ne suis pas sûr si le mode protégé doit être désactivé.

Lorsque vous êtes sur un système 64 bits, il y a deux de caspol, avec des autorisations distinctes:

  • C: \ Windows \ Microsoft.NET \ Framework \ v2.0.50727 \ caspol.exe
  • C: \ Windows \ Microsoft.NET \ Framework64 \ v2.0.50727 \ caspol.exe

Je beaucoup d'autorisations de réglage du temps sur le caspol 32 bits, puis frapper ma tête contre le mur car il wouldn ne fonctionne pas. Il s'avère que j'ai utilisé IE8 64 bits parce que cela a fait un IEDebug.log. Il est préférable de définir les autorisations sur les deux versions.

0

Comme il se trouve, ce n'était pas une question de confiance du tout. Une DLL qui était requise pour l'exécution de l'application n'était pas dans le répertoire bin de l'application. Par conséquent, l'application tentait de retirer la DLL requise du GAC, ce qui n'était pas correct. Le déploiement avec la DLL requise a résolu le problème.

Comme une note de côté - c'est un mécanisme de livraison très vétuste pour les logiciels et nous espérons que ce n'est pas utilisé plus. Déboguer ces types d'erreurs est beaucoup plus difficile que cela devrait être. Recommandez de choisir un meilleur mécanisme de livraison que les contrôles intégrés.

Questions connexes