C # - .NET 4.0 - Das Assembly nicht erlaubt teilweise vertrauenswürdigen Anrufer
-
27-09-2019 - |
Frage
Wenn Sie von einer Netzwerkfreigabe ausgeführt wird, meine Anwendung löst die folgende Ausnahme:
dass die Montage erlaubt nicht teilweise vertrauenswürdigem Anrufer.
Meine Anwendung Verweise zwei DLL-Dateien:
- BitFactory.Logging.dll
- FileHelpers.dll
Ich bin nicht sicher, welches es ist, die Probleme mit.
-
AllowPartiallyTrustedCallersAttribute
: Informieren Sie sich über sie, aber ich habe nicht die Quelle für eine der DLL-Dateien, so dass ich nicht in der Lage bin das Attribut auf diese DLL-Dateien hinzuzufügen. -
CASPOL.EXE
. Hinzugefügt meine Netzwerkfreigabe ein paar Variationen verwenden, wiecaspol -machine -addgroup 1. -url \\netserver\netshare\* LocalIntranet
nichts zu beeinflussen scheint
Ich habe gebraucht CASPOL Hack vor, mit .NET 3.5, jedoch scheint es nicht die Arbeit mit .NET 4.0 jetzt. Kann jemand suggeest, wie ich umgehen kann dieses „teilweise vertrauenswürdigen Caller“ Check?
Danke.
Lösung
.NET 4.0 hat änderten sich die Standardregeln für die Sicherheitspolitik . Sie verlassen nun die App.config
Datei für diese Anwendung erstellen oder ändern müssen.
Codezugriffssicherheit (wie durch CASPOL
konfiguriert) ist nun standardmäßig in .NET 4.0 ignoriert. Wenn Sie es aktivieren wollen, müssen Sie das folgende in der app.config
Datei hinzuzufügen:
<configuration>
<runtime>
<!-- enables legacy CAS policy for this process -->
<NetFx40_LegacySecurityPolicy enabled="true" />
</runtime>
</configuration>
Sie können .NET 4.0 zu behandeln Code aus dem Netzwerk mit LoadFrom
konfigurieren, wie voll das folgende Konfigurationselement vertraut:
<configuration>
<runtime>
<!-- Treat assemblies from network locations as fully trusted. -->
<!-- Caution: Do not point this loaded gun at your foot. -->
<loadFromRemoteSources enabled="true" />
</runtime>
</configuration>