Microsoft .NET und die automatische Intranet Zone – SecurityException und AspNetHostingPermission

Michael Schwarz on Tuesday, January 13, 2009

Gerade ist es mir wieder passiert, ich versuche eine .NET Anwendung (ok, es ist eine ConsoleApplication349.exe, eine von 348 anderen kleinen Tools die ich mir mal schnell geschrieben habe) von einem Netzwerklaufwerk zu starten. In der .NET 2.0 Konfiguration habe ich angegeben, das alle Programme von diesem Netzwerkpfad (Intranet) unter FullTrust laufen sollen, ich vertraue mir selber.

Jetzt bekomme ich aber eine Fehlermeldung:

SecurityException: Fehler bei der Anforderung des Berechtigungstyps System.Web.AspNetHostingPermission, System, Version=2.0.0.0,...

image

Mist, was ist denn das jetzt schon wieder! Nach langem hin und her habe ich es dann gefunden. Die Statuszeile des Datei Explorers zeigt es auch, wenigstens ganz unscheinbar, aber es steht da. Das Netzwerklaufwerk wird anstatt in der Intranet Zone in der Internet Zone ausgeführt, und meine Konfiguration für .NET 2.0 Assemblys ignoriert, hatte ich ja nur für die Intranet Zone verändert.

image

Doch warum denkt Windows (oder das .NET Framework), dass sich das Laufwerk plötzlich im Internet befindet? In den meisten Fällen liegt es daran, dass man das Laufwerk über einen UNC Pfad mit IP Adresse verbunden hat, aber dem ist nicht so.

Im Internet Explorer gibt es eine Einstellung, die das automatische Zuordnen von Intranet und Internet vornimmt. Stellt man die automatische Zuordnung ab, dann werden die Pfade in die Internet Zone geschoben, es sei denn, sie stehen explizit in der Intranet Liste.

image

Wieder etwas gelernt, das erste Kontrollkästchen behebt das Problem. Das ist zwar standardmäßig aktiviert, hier hatte ich aber mal etwas ausprobiert.