2011-12-05 20 views
8

Ho una soluzione C# che contiene più librerie di classe C#. Di recente sto facendo qualche ricerca e si suggerisce di firmare gli assembly emessi dalle mie librerie, facendoli firmare con un nome forte. In primo luogo mi chiedo se è meglio che io progredisca con tale? Le librerie che vengono emesse da queste librerie di classi sono utilizzate in più altri progetti.beneficio della firma dll con nome sicuro

Se è consigliato dalla mia domanda precedente che sì dovrei firmare il mio dll di, il .snk che uso, questo può essere utilizzato per ciascuna delle librerie di classi nella soluzione? O deve essere una chiave per libreria di classi?

+1

Per la tua prima domanda, vedi http://stackoverflow.com/questions/1197133/notazione-disposta-con-not-signing-a-net-assembly e http://stackoverflow.com/questions/721340/strong -signed-assiemi – Otiel

risposta

3

A volte la firma di un assieme è un requisito. Questo è vero se si desidera GAC l'assembly o se un assembly firmato desidera fare riferimento a un altro assembly.

È possibile riutilizzare lo stesso file .snk e in questo modo verrà generato lo stesso token di chiave pubblica per tutti gli assiemi.

1

È essenziale se si intende inserire l'assembly nel GAC per l'utilizzo da parte di un numero elevato di assiemi.

È vantaggioso se lo si vuole dare agli utenti per fare uso piuttosto che installarsi, poiché offre un grado di rassicurazione sul fatto che sia veramente il file che hai detto che gli stavi dando, piuttosto che uno che è stato manomesso.

E 'bene utilizzare l'uso pochi (forse solo uno) SNK file per entità (individuale, collettivo, gruppo open-source, o società) perché se qualcuno si fida di voi (se "tu" significa persona, società, ecc) e si fidano quindi di una chiave pubblica di cui sono sicuri, quindi si fidano anche della prossima volta. Non vorresti firmare assegni con una firma diversa scritta a mano ogni volta, vuoi?