[Tutorial] .NET Programme vom Netzlaufwerk starten
März 18, 2006 on 12:26 am | In Artikel / HowTo's | 30 CommentsEndlich, mein erster .NET Beitrag ist fertig.
UPDATE
Hier findet ihr noch einen sehr guten Artikel zu diesem Thema, unbedingt lesen!
Also ich hatte da neulich das Problem das ich ein C#-Programm für mehrere Personen im Netzwerk zugänglich machen wollte OHNE es überall installieren zu wollen/müssen. Das ist aber bei .NET so eine Sache, denn die CAS (Code Acess Security) ist da recht restriktiv was IO-Operationen über das Netzwerk angeht und deshalb gabs beim Starten auf dem entfernten Rechner erstmal eine nette SecurityException als Antwort. Gut, also was tun. Man muss nun auf jedem Rechner der das Programm starten können soll die Laufzeit-Sicherheits-Richtlinie so modifizieren das er der Assembly vertraut. Das ist relativ einfach und soll auf den folgenden Bildern gezeigt werden.
Erstmal begibt man sich in die Systemsteuerung und dort dann in die Verwaltung. Hier sieht man nun die sogenannte .NET Konfiguration für alle installierten Versionen des Frameworks. Beim 1.1er war dieser Menüpunkt immer vorhanden, aber seit dem 2.0er gilt das nur noch wenn man die SDK installiert hat. Stellt sich nun die Frage: Wie komme ich beim 2.0er dahin? Muss ich nun auf jedem Rechner die SDK installieren? Antwort: NEIN, aber dazu später mehr. Erstmal zeige ich wie man es zu Fuß macht.

Die 2.0er Konfiguration unterscheidet sich optisch kein Stück von der 1.1er. Dort angekommen gehen wir zum Menüpunkt Machine >>> CodeGroups >>> All Code runter und sehen verschiedenste Rechtegruppen. Man könnte jetzt anfangen die vorhandenen zu editieren und anzupassen, oder man macht einfach seine eigene auf, wie in meinem Fall. Also Rechte Maustaste auf ALL CODE und dann NEW…

Nun legt man einen beliebigen Namen fest und wer es hart mag der gibt auch noch eine Beschreibung an

Als nächstes wählt man die Bedingungen / Beweise unter der das Vertrauen der Assembly stattfinden soll. In meinem Fall soll eine bestimmt URL freigegeben werden für den Zugriff. HASH wäre zum Beispiel der Hashwert der Assembly der als Beweis gilt oder Publisher wenn man nur einer vom Ersteller signierten Assembly vertrauen will.

Nun muss der Pfad der URL spezifiziert werden. In meinem Fall will ich die Windowsfreigabe “testing” und alles was sich darin befindet auf dem Rechner mit der angegebenen IP als vertrauenswürdig deklarieren.

Jetzt muss nur noch der Grad des Vertrauens festgelegt werden, soll heissen welche Rechte möchte ich genau vergeben. In meinem Fall habe ich alle Rechte vergeben, sprich FULL TRUST.

Hat man danach bestätigt sieht man nun die eben erstellte neue Gruppe unter ALL CODE.

Das ist ja alles schön und gut, aber was mach ich nun mit den Rechnern auf denen die SDk nicht installiert ist. Ausserdem wäre das ganz schön umständlich das so bei allen einzustellen. Um das zu vereinfachen kann man sich nun aus der eben festgelegten Regel ein sogenanntes “Weitergabe-Paket” erstellen, welche die getätigten Schritte in einer Art Setup zusammenfasst. Dazu einfach “Runtime Security Policy” auswählen und dann oben auf AKTION gehen. Dort kann man nun das “Deployment-Package” erstellen.

Hier muss man nun auswählen auf welcher Ebene das Regelpaket angewendet werden soll. In meinem Fall auf Rechnerebene. Enterprise, bzw. Organisation wäre für eine ganze Domäne oder User eben auf bestimmte Benutzer beschränkt. Dann vergibt man nur noch einen Namen und man klickt auf NEXT und dann FERTIG.

Nun hat man eine “.msi” – Datei die man bequem rumreichen / schicken kann. Diese braucht nur noch jeder einmal ausführen und alle haben die nötigen Rechte um das Programm vom Netzwerk aus zu starten.
Das alles ist natürlich so nicht für große Netzwerke zu empfehlen, denn die haben meist einen Domaincontroller und da sollte das Ganze dann auf Enterprise-Ebene geschehen, d.h. das muss dann nur am Server gemacht werden. Ob das mit dem Server und der Domäne so einfach geht habe ich aber nicht getestet, aber das kommt noch
30 Kommentare »
RSS Feed für Kommentare zu diesem Artikel. TrackBack URI
Hinterlasse einen Kommentar
Powered by WordPress with Pool theme design by Borja Fernandez.
Entries and comments feeds.
Valid XHTML and CSS. ^Top^
Hey,
toller Beitrag, genau DAS hab ich gesucht.
Gruß
zack
Kommentar by zack — 19. April 2006 #
Freut mich das es jemandem geholfen hat, dann hat sichs ja gelohnt.
Hab auch ne Weile lesen müssen bis ich das alles rausgefunden hatte
Kommentar by Horti — 27. April 2006 #
Hallo,
super Beitrag!! Hat mir sehr geholfen das Policyframework zu verstehen.
Jedoch hat das mit dem weitergabepacket nicht funktioniert.
Ich konnte zwar eins erstellen und auf dem anderen Rechner installieren. Jedoch funkltionierte die Anwendung auf dem anderen Rechner immer nocht nicht.
Habe dann das SDK nachinstalliert und die Policy manuell angelegt. (sehr müßig).
Gibt es eine Möglichkeit soetwas über Grouppolicies zu steuern?
Gruß
ripi
Kommentar by ripi — 8. Mai 2006 #
Ja also SDK nachinstallieren ist wohl ziehmlich viel Aufwand dafür, da wäre ich wohl verrückt geworden bei meinem Projekt (ca. 20 Rechner). Also wie das per Gruppenrichtlinie geht hab ich selber noch nicht probieren können, das wüsst ich selber gern. Sobald ichs weiss Update ich den Artikel.
Kommentar by Horti — 12. Mai 2006 #
Ausgezeichneter Beitrag, genau was ich gesucht habe.
Weiter so!
Kommentar by pjot — 19. Mai 2006 #
Hallo!
Super Danke! Leider hab ich ein Problem. Wir haben einen WSUS, der das DotNet Framework verteilt! Das Framework ist überall installiert, jedoch wird in der Verwaltung die Konfig nicht angezeigt! Wenn ich das SDK installiere ist es da! (sehr umständlich!) Hat jemand eine Rat?
Kommentar by Alex — 7. Juni 2006 #
Genau das Phänomen habe ich ja in meinem Artikel beschrieben, das ist erst seit .NET 2.0 so und im Grunde genommen kein Problem denn das brauchst du ja auch nur auf einem Rechner. An dem stellst du dann die Sicherheitsrichtlinie so ein wie du sie brauchst und dann erstellst du dir dann ein solches WEITERGABEPAKET bzw. DEPLOYMENTPackage. Dieses kann man dann auf allen benötigten Rechnern einmal ausführen (als Admin versteht sich) und fertig ist die Laube. (steht aber alles im Artikel ^^)
Kommentar by Horti — 10. Juni 2006 #
Super,
genau danach suche ich seit Tagen. Nur wenn ich jett noch wüsste, wie ich das in einer Domäne über die Gruppenrichtlinien mache wär’s perfekt.
Vielleicht hats schon jemand rausgekriegt?
Danke
Klauis
Kommentar by Klaus — 20. Juli 2006 #
Prima,
das war das was ich gesucht habe.
Aber wenn man die Richtlinien mit der .msi Datei eingestellt hat, werden alte schon vorhandene Richtlinien überschreiben -> d.h. es werden die Richtlinien auf dem Rechner so eingestellt wie auf dem Rechner auf dem die MSI erstellt wurde.
Wenn richtlinien ergänzt werden sollen ist das Kommandozeilentool caspol besser. Dieses fügt zum Beispiel mit der Zeile C:\WINDOWS\Microsoft.Net\Framework\v2.0.50727\caspol -m -ag LocalIntranet_Zone -url \\servername\Freigabeverzeichnis\Programmverzeichnis\bin\* FullTrust -n “RichtlinienName”
Kommentar by BrainDeath — 13. September 2006 #
Klasse auch vielen Dank von mir.
Kommentar by ekkart — 10. Januar 2007 #
Danke fürs zusammentragen, sowas suchen wir schon länger!
Kommentar by André — 2. Februar 2007 #
Super Tutorial! Hat mir sehr geholfen!
Kommentar by Markus — 16. März 2007 #
Finde das eine sehr gute Beschreibung.
Habe schon lange danach gesucht.
Kommentar by krebsbachbub — 8. Mai 2007 #
Auch von mir ein herzliches Dankeschön. Auch an BrainDeath. Sein Tip ergänzt den Beitrag hervorragend.
Kommentar by Alexander — 10. Juni 2007 #
Hallo
Supper Beitrag. Ich konnte damit ein lange bestehendes Problem lösen.
Kommentar by Sascha — 26. Juli 2007 #
super tutorial,
bitte nicht aus dem netz nehmen !!!!
vielen vielen dank !!
Kommentar by Björn — 6. August 2007 #
Hallo,
super vielen Dank. Der Artikel hat mir einige
graue Haaere eingespart.
Vielen Dank
Kommentar by Basti — 20. August 2007 #
Hallo,
hat auch mir SEEHHHRRRR geholfen. DANKE.
Kommentar by eitschpi — 28. August 2007 #
Einfach mal etwas Gutes !
Suche und probiere schon seit einiger Zeit aus, aber solche eine saubere Dokumentation ist wirklich mal super.
Schade, dass man die guten Kommentare immer im Internet suchen gehen muss.
Kommentar by Ralf — 6. September 2007 #
Tolle Anleitung. Hat gut geholfen bis …
…zum “Weitergabe-Paketâ€. Konnte es erstellen, aber die Ausführung (als admin) auf anderen Rechnern nützte nichts, bis mir eine Idee kam.
Ich arbeite mit XP Rechnern, die Anleitung entstand aber ja evtl unter Win2000 (Annahme von mir, die nur Horti bestätigen oder verwerfen kann). Unter XP muss man für .NET Anwendungen ein “Redistributable Packet” installieren, welches unter Win2000 in den ServicePacks enthalten ist. Und siehe da, nach dem ReDist-Pack funktioniert auch das “Weitergabe-Paket”.
XP : Redist-Pack + Weitergabe Paket
2000: Weitergabe Paket
Kommentar by Michael — 18. September 2007 #
Danke, das mit mir auch geholfen, ist echt nicht einfach diese Einstellungen zu finden.
Kommentar by Sebastian — 26. September 2007 #
Danke, das hat mir auch geholfen, ist echt nicht einfach diese Einstellungen zu finden.
Kommentar by Sebastian — 26. September 2007 #
Super, hat mir auch sehr geholfen. Musste lange googlen bis ich hier war
Kommentar by Etienn — 24. Oktober 2007 #
Vielen Danke für diesen Post. Hat mir ne Menge Arbeit erspart, zumal das ganze vorgehen sehr gut beschrieben ist.
Kommentar by bradock — 21. November 2007 #
Hallo,
vielen Dank, Horti und BrainDeath.
Ich habe noch eine Frage zu BrainDeaths Anleitung mit caspol: Ist der caspol-Weg eine Alternative oder eine Ergänzung? d.h. muss ich mit Hortis Anleitung zunächst eine Policy anlegen und kann dann mit caspol (…) -n “RichtlinienName” auf diese Richtlinie verweisen, oder ersetzt die caspol-Zeile komplett Hortis Schritte?
Kommentar by Bernie Andert — 26. November 2007 #
Klasse, hat mir sehr geholfen!! Das Deployment Package schreibt so wie´s aussieht einen Eintrag in die Datei C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\CONFIG\security.config und zwar:
Löscht man den Eintrag, bekommt man ne Exception von der Anwendung, trägt man´s wieder ein, läuft die Anwendung
Kommentar by Zut — 17. Januar 2008 #
Sorry, den XML-Eintrag wollte der Editor nicht. Hab die eckigen Klammern durch () ersetzt…
(CodeGroup class=”UnionCodeGroup”
version=”1″
PermissionSetName=”FullTrust”
Name=”Dein_CodeGroupName”
Description=”">
(IMembershipCondition class=”UrlMembershipCondition”
version=”1″
Url=”\\Pfad_zum_Share\*”/)
(/CodeGroup)
Kommentar by Zut — 17. Januar 2008 #
Super Artikel,
allerdings benötige ich die entsprechende Konfiguration für Vista. Net2 wird auf meinem System nicht installiert, da schon Net3 vorab installiert war und ich finde partout keine Konfigurationswerkzeuge für das NET-Framework. hat da einer eine Idee?
Kommentar by Lubu — 25. Januar 2008 #
[...] Horti’s blog [Tutorial] .NET Programme vom Netzlaufwerk starten Hier habe ich die Lösung für mich gefudnen. Vielen Dnak für eure HIlfe [...]
Pingback by VB.NET -> Microsoft Security Warning - Forum Fachinformatiker.de — 31. März 2008 #
DANKE
Genau das hab ich schon länger gesucht – so kann man es dann gsd einfach verteilen im Netz und auf den Servern. Echt hilfreich!
Gruß
bernhard
Kommentar by Bernhard — 6. Mai 2008 #