.Net 2.0 Codesicherheit einstellen

Hallo Kollegen,

ich habe ein VB Projekt unter Visual Studio 2.5 lokal entwickelt. Klappt. Nun habe ich den Quellcode auf ein Netzwerklaufwerk verschoben:

\server\projects --> gemappt als Laufwerk p:

Server, Entwicklungsclient und angemeldeter Benutzer sind Mitglied der selben Domäne.

Wenn ich nun versuche, das Projekt zu öffnen, erhalte ich die Fehlermeldung

„Der Projektspeicher ist nicht vertrauenswürdig: p:\projekte…\blablabla“

Alles klar, Sicherheitsrichlinie passt nicht. Vorgegangen nach Anleitung:

http://msdn.microsoft.com/de-de/library/bs2bkwxc(VS…

Also .NET 2.0 Framework 2.0 Configuration aufgerufen, Arbeitsplatz … Laufzeitsicherheitsrichtlinie … Computer … Codegruppen … All_Code … LocalIntranet_Zone eine neue Codegruppe erstellt mit folgender Mitglieldschaftsbedingung:

Bedingungstyp URL, Url: file://\server\projects*

Keine Änderung. Auch noch probiert:

Bedingungstyp URL, Url: file://\server.domäne.xxx\projects*
Bedingungstyp URL, Url: file://\server*
Bedingungstyp URL, Url: file://p:*

Nach stundenlangem Gewälze in der MSDN, wo wie üblich nur nebliges Geplapper zu finden ist, Frage in die Runde ob jemand da mehr darüber weiß.

Konkret:

? wo liegt mein Denkfehler, und wie muss ich die Einstellung setzen, damit Code von dieser Freigabe dieses Servers als „sicher“ betrachtet wird?

? Und kann man den ganzen unnützen Schlonz irgendwo global ein für alle Mal los werden (Gruppenrichtlinie „.Net Framework: unnützen Sicherheitskrempel deaktivieren“ habe ich gesucht, aber nicht gefunden.

Thx,

Armin.

Hi!
Am einfachsten ist es vermutlich, wenn Du Dich nicht mit Codegruppen ‚rumärgerst, sondern die Zonensicherheit einstellst:
Setz‘ die LocalIntranet-Zone auf FullTrust, dann sollte es funktionieren.
Das geht auch recht leicht (?) mit caspol.exe (im .NET Framework-Verzeichnis):

caspol -m -chggroup LocalIntranet\_Zone FullTrust

(Aus dem Gedächtnis, evtl. nochmal die Hilfe anschauen mit caspol -?)

Gruß,
Martin

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Hi Martin,

ich habe ein VB Projekt unter Visual Studio 2.5 lokal
entwickelt.

Visual Studio 2005 natürlich :smile:

Wenn ich nun versuche, das Projekt zu öffnen, erhalte ich die
Fehlermeldung

„Der Projektspeicher ist nicht vertrauenswürdig:
p:\projekte…\blablabla“

Bedingungstyp URL, Url: file://\server\projects*

? wo liegt mein Denkfehler, und wie muss ich die Einstellung
setzen, damit Code von dieser Freigabe dieses Servers als
„sicher“ betrachtet wird?

Setz’ die LocalIntranet-Zone auf FullTrust, dann sollte es
funktionieren.

Hat nichts gebracht. Aber der Weg war richtig: erst mal habe ich die Richtlinie für All_Code brachial auf Full-trust gesetzt, passt. Wieder entfernt, FullTrust in der Intranet Zone gesetzt: Fehler wieder da.

Nachdem ich mir dann eine Weile lang den Kopf darüber zerbrochen habe, wie wohl ein mittemäßig unintelligentes Microsoft System erkennen können will, ob eine URL zum Internet oder zum Intranet gehört, und auch die Doku dazu nichts zu sage hat, habe ich mal testweise den Eintrag Full_Trust für die Zone „Internet“ probiert, und siehe da, es klappt. Auch eine Stufe feiner mit dem URL Filter klappt es nun, aber halt in der falschen Zone.

Offenbar denkt Microsoft, mein P: Laufwerk stamme aus dem Internet. Na toll.

Das geht auch recht leicht (?) mit caspol.exe (im .NET
Framework-Verzeichnis):

caspol -m -chggroup LocalIntranet_Zone
FullTrust

(Aus dem Gedächtnis, evtl. nochmal die Hilfe anschauen mit
caspol -?)

Danke für den Tipp, dürfte hinkommen, ich bin bei meiner Sucherei auch öfters mal über caspol gestolpert.

Fazit: Ich hab für mich eine quick and dirty Lösung, aber sobald ich mein Programm auf die Welt loslasse wird mich die Sicherheitseinstellungsgeschichte unweigerlich einholen, die Anwender bekommen dann dasselbe Problem, und manuell auf allen PCs ändern ist nicht. Da man per Gruppenrichtlinie keine Kommandozeilen verteilen kann hilft mir caspol im Moment noch nicht. Eventuell funktioniert auch ein Login-Script. Aber irgendwie bezweifle ich, dass ein Anwender genügend Rechte hat, an der .Net Sicherheitsrichtlinie herumzubasteln. Mal testen bei Gelegenheit.

Jetzt zur Zusatzfrage: wie klassifiziert Microsoft Code in die Zonen Local_Intranet oder Internet? Das geht bei mir offenbar schief.

Schon geprüft:

* Server und Client stammen aus dem selben IP Subnetz, private IP Adressen (192.168.x.x).
* Server und Client befinden sich in der selben Internet Domäne, und diese hat einen privaten Namespace (.lan), Haupt- und verbindungsspezifische Suffixe passen alle.
* Server und Client befinden sich in der selben Active Directory Domäne
* DNS arbeitet einwandfrei, Forward und Reverse.
* .Net 2.0 Doku schweigt sich über dieses Detail nobel aus.
* AD Site-Liste und Subnetz-Liste ist einwandfrei gepflegt

…Armin

Hallo Armin!

Jetzt zur Zusatzfrage: wie klassifiziert Microsoft Code in die
Zonen Local_Intranet oder Internet? Das geht bei mir offenbar
schief.

Ich hatte ein ähnliches Problem in meinem Netzwerk zu Hause. Ich habe dann den Servernamen unter Systemsteuerung->Internetoptionen->Sicherheit->Lokales Intranet->Sites->Erweitert hinzugefügt. Vielleicht hilft das ja auch bei dir.

mfg
christoph