Jump to content


This is a ready-only archive of the InstallSite Forum. You cannot post any new content here. / Dies ist ein Archiv des InstallSite Forums. Hier können keine neuen Beiträge veröffentlicht werden.
Photo

C# Komponenten vom Server starten


1 reply to this topic

ali

ali
  • Full Members
  • 1,008 posts

Posted 08 January 2009 - 11:50

Hallo,
wir unterstützen für unsere Anwendung auch das Ausführen von einem Netzlaufwerk. Hierbei haben wir Probleme beim Ausführen von .Net Komponenten, da diese die niedrigste Sicherheitseinstufung in der .Net Umgebung bekommen, wenn diese nicht lokal aufgerufen werden. Ich habe hierzu nun schon einiges im Internet erforscht, und herausgefunden, das man die entsprechenden Komponenten "Strong Named" signieren muss, und der .Net Umgebung auf dem Zielrechner über Caspol.exe oder dem Konfig tool aus dem SDK mitteilen muss, das die entsprechende Signatur eine andere Vertrauensstufe erhält.
Wenn ich dies auf meinen Testrechner teste, funktioniert das auch, aber wenn ich unsere Anwendung an Kunden verteile, kann ich nicht erwarten, das unsere Kunden auf ihren Rechnern ein SDK installieren und solche Einstellungen für unsere Signatur selbst einstellen. Ich habe weiter gelesen, das man solche Einstellungen auch über MSI verteilen kann, aber wie mache ich das? Über VS2005 kann man hier wohl ein Installer Paket erstellen wo bestimmte Klassen, die aus System.Configuration.Install.Installer abgeleitet wurden, mit eingebunden werden. Wie mache ich so etwas mit InstallShield?

z.B.
http://blogs.msdn.co...6/20/57023.aspx

http://entwickler-fo...ght=strong name

ali

ali
  • Full Members
  • 1,008 posts

Posted 15 January 2009 - 18:04

so jetzt habe ich's rausgefunden.
Eine Lösung ist ist es auf dem Zielsystem eine Codegruppe zu erstellen, die den Key der Signatur enthält. Dieser Codegruppe kann man dann eine max. Zone mitgeben, zb. FullTrust.

im einzelnen ist zu tun.
-Die entsprechenden Komponenten die zentral gerufen werden sollen StrongNamed signieren
-mit dem Tool sn.exe (.Net SDK) den PulicKey der Signatur aus einer Komponente als Byte extrahieren.
-In VS ein Klassenbibliotheks Projekt anlegen.
-Eine Installer Klasse Einbinden.
-Den Code zum Installieren und Deinstallieren der Codegruppe ergänzen und auf IS anpassen (IS-Hilfe). Hier muss der Codegruppe die extrahierten Bytewerte des PublicKey als Schlüssel mitgegeben werden.
http://msdn.microsof...y/ms951290.aspx
-Die erzeugte DLL im InstallShield Projekt als Komponente einbinden, und die Komponente auf ".Net Installerklasse" - "Ja" einstellen.

Beim installieren wird die Instanz der .Net Installerklasse mit ausgeführt, auf dem Zielsystem wird die Codegruppe mit dem Schlüssel und der Sicherheitseinstellung FullTrust erstellt. Die Komponenten die mit diesem Schlüssel StrongNamed signiert sind, werden mit FullTrust ausgeführt, auch wenn Sie auf einem Netzlaufwerk liegen.

ali

Edited by ali, 16 January 2009 - 14:04.