Frage

Ich habe ein ActiveX-Steuerelement einrichten auf einer Webseite laufen. Der Server ist in der Lage diese Webseite selbst zu dienen, aber auch andere Maschinen auf dem Intranet und Internet sind nicht in der Lage, darauf zuzugreifen.

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. Bin ich etwas falsch hier?

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

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">
War es hilfreich?

Lösung

Vor langer Zeit habe ich irgendwo gelesen, dass für .NET Usercontrols, ist URL Beweise nicht. Nur Website und Zone Beweise Arbeit.

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 für jede Zone dies tun.

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

Wenn Sie auf einem 64-Bit-Systemen sind, dann gibt es zwei caspol sind, 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 nicht funktionieren würde. Es stellte sich heraus, dass ich verwendet 64-Bit-IE8, weil das eine IEDebug.log gemacht. Am besten legen Sie die Berechtigungen für beide Versionen.

Andere Tipps

Wie sich herausstellte, war dies kein Vertrauen Problem überhaupt nicht. Eine DLL, die für die Anwendung erforderlich war, war nicht zu laufen im bin-Verzeichnis der Anwendung. Folglich wurde die Anwendung versucht, die erforderliche DLL aus dem GAC zu ziehen, was nicht richtig war. Bereitstellen mit der erforderlichen DLL das Problem behoben.

Als Randnotiz - das ist ein sehr veralteter Liefermechanismus für Software und hoffentlich wird es nicht mehr verwendet wird. Debuggen diese Art von Fehler ist viel schwieriger, als es sein sollte. Empfehlen Sie einen besseren Abgabemechanismus als eingebettete Steuerungen wählen.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top