2012-10-31 10 views
12

Innerhalb meiner Visual Studio-Lösung habe ich eine Website und 4-5 Klassenbibliothek Projekte, die referenziert sind., Von denen einige externe externe Baugruppen verweisen.Sollte jedes Projekt mit einem separaten starken Namensschlüssel (.snk) signiert sein?

Ich habe die Aufgabe, die Assemblies für diese Projekte zu signieren.

Mein Verständnis ist, dass der Zweck der Unterzeichnung ist, dass nicht jeder in der Lage ist, unsere Assembly zu verwenden, ohne seinen öffentlichen Schlüssel und die Versionsdetails anzugeben, richtig?

Soll ich einen einzelnen Strong Name Key (.snk) verwenden, um alle Assemblies dieser Projekte zu signieren, oder sollte jede Assembly mit einem separaten starken Namensschlüssel signiert sein?

Was ist der Zweck des Passwortschutzes für starke Namensschlüssel?

Wie würden Sie das tun?

Vielen Dank,

+2

Der Zweck, Baugruppen zu signieren, ist sicherzustellen, dass es sich um ** ursprüngliche nicht modifizierte Versionen handelt **. Jedem steht es frei, sie zu benutzen (für die Lizenzierung gibt es andere Tools, die in Verbindung mit dem Signieren verwendet werden), aber sie können sicher sein, dass sie nicht modifiziert wurden (zum Beispiel durch bösartige Software) und sie von Ihnen kommen (weil der private Schlüssel für Signieren ist ... privat). –

+0

Adriano ist korrekt siehe ... http://msdn.microsoft.com/en-us/library/h4fa028b.aspx Für wie sehen ... http://msdn.microsoft.com/en-us/library /xc31ft41.aspx – Kevin

Antwort

12

dass der Zweck der Unterzeichnung ist, dass nicht jeder unsere Versammlung verwenden zu können, ohne seine öffentlichen Schlüssel und Version Einzelheiten zu nennen, nicht wahr?

Nr. Signing überprüft Sie, der Herausgeber. Es verhindert, dass andere gefälschte Versionen Ihrer Assemblys erstellen.

Soll ich einen einzigen Strong Name Key (.snk) verwenden, um alle Assemblies dieser Projekte zu signieren, oder sollte jede Assembly mit einem separaten starken Namensschlüssel signiert sein?

Der Schlüssel ist Ihre Unterschrift, also verwenden Sie 1 für alle Ihre Projekte.

Was ist der Zweck des Passwortschutzes für starke Namensschlüssel?

Der gesamte Signiervorgang hängt davon ab, dass Sie der Einzige sind, der den Schlüssel besitzt. Es gibt kein Zertifikat. Durch das teilweise Signieren und geschützte Schlüssel können Sie die Anzahl der Personen begrenzen, die Zugriff auf den Schlüssel haben.

+0

danke. Wo sollte die .snk Datei gespeichert werden? Es muss nicht auf den Produktionsserver gestellt werden, oder? –

+0

Der Schlüssel wird am Build-Server benötigt. –

+0

könnte ich nicht auf andere Baugruppen von Drittanbietern verweisen, die nicht signiert sind? Es gibt mir einen Fehler Fehler Assembly-Generierung fehlgeschlagen - referenzierte Assembly 'NameOfThirdPartyAssembly' hat keinen starken Namen. –