2009-06-26 5 views
1

Ich habe ein ActiveX-Steuerelement eingerichtet, das auf einer Webseite ausgeführt wird. Der Server kann diese Webseite für sich selbst bereitstellen, aber andere Computer im Intranet und Internet können nicht darauf zugreifen.CASPOL, FullTrust und Ausführen eines ActiveX-Steuerelements in IE mit FullTrust basierend auf URL

Die Caspol Einstellungen wie folgt aussehen:

Codegruppen:

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 

Die Anwendung, die ich für den Zugriff bin versucht Gruppe 1.6. Mache ich hier etwas falsch?

[Bearbeiten] Es ist erwähnenswert, dass das IEDebug Fehlerprotokoll auf einer Maschine die Kontrolle über das Intranet zuzugreifen versucht, zeigt eine lange Ausnahme. Die bemerkenswerteste davon ist:

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

Ich hatte einige ähnliche Probleme eine Kontrolle an die Arbeit, und in unserem Fall hatten wir http zu ändern: // myservername/APPLICATION/* http: // myservername/* Auch stellen Sie sicher, dass Sie eine Regel haben für HTTPS, wenn Sie SSL verwenden. In Ihrem Fall könnte etwas anderes schief gehen, weil Sie FullTrust auf der obersten Ebene haben. – BeWarned

Antwort

4

vor langer Zeit ich irgendwo gelesen, dass für .Net usercontrols, URL Beweise nicht funktioniert. Nur Standort- und Zonenbeweise funktionieren.

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

Sie können dies für jede Zone tun.

Wenn Sie IE8 verwenden, stellen Sie sicher, dass mysite.com zur Liste der vertrauenswürdigen Sites 3 hinzugefügt wird. Ich bin mir nicht sicher, ob der geschützte Modus ausgeschaltet sein muss.

Wenn Sie auf einem 64-Bit-System sind, dann gibt es zwei caspol ist, mit separaten Berechtigungen:

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

ich viel Zeit Berechtigungen für die 32-Bit-caspol Einstellung, und dann gegen die Wand Kopf hämmern, weil es wouldn arbeite nicht. Stellt sich heraus, dass ich 64-Bit-IE8 verwendet, weil das eine IEDebug.log gemacht hat. Am besten legen Sie die Berechtigungen für beide Versionen fest.

0

Wie sich herausstellte, war dies überhaupt kein Vertrauensproblem. Eine DLL, die für die Ausführung der Anwendung erforderlich war, befand sich nicht im bin-Verzeichnis der Anwendung. Folglich versuchte die Anwendung, die erforderliche DLL aus dem GAC abzurufen, was nicht korrekt war. Die Bereitstellung mit der erforderlichen DLL behebt das Problem.

Als eine Randnotiz - das ist ein sehr antiquierter Liefermechanismus für Software und hoffentlich wird es nicht mehr verwendet. Das Debuggen dieser Art von Fehlern ist viel schwieriger als es sein sollte. Empfehlen Sie, einen besseren Übermittlungsmechanismus als eingebettete Steuerelemente auszuwählen.

Verwandte Themen