2009-08-10 18 views
7

Ho un prodotto che ha circa 10+ assemblaggi. Lo spedivamo senza dare un nome forte agli assiemi. Ma dopo aver letto dei nomi forti, credo che sia una saggia idea di assemblaggi di nomi forti. Volevo solo sapere che una best practice per il nome forte di tutti gli assembly utilizzati da un programma?Assumi il nome di tutti gli assemblaggi utilizzati dal prodotto?

Qualche idea?

+0

Ecco un'altra domanda strettamente correlata http://stackoverflow.com/questions/796945/should-interop-assemblies-be-signed – sharptooth

risposta

9

Sì, è una best practice e dovresti farlo in particolare considerando il fatto che stai spedendo questo codice ai clienti (ritengo che la denominazione forte sia meno critica in un'applicazione interna o basata su Web).

Per una spiegazione di questa logica vedere Strong-Named Assemblies:

Un nome forte è costituito da identità sua semplice nome del gruppo di testo , numero di versione e la cultura informazioni (se previsto) -plus un chiave pubblica e una firma digitale. E è generato da un file di assieme (il file che contiene il manifesto dell'assembly , che a sua volta contiene i nomi e gli hash di tutti i file che compongono l'assemblea), utilizzando la chiave privata corrispondente . Microsoft® Visual Studio® .NET e altri strumenti di sviluppo forniti nel kit di sviluppo software (SDK) di Windows possono assegnare nomi sicuri a un assembly . Gli assembly con lo stesso nome solido sono identici allo .

È possibile garantire che un nome sia globale univoco firmando un assembly con un nome sicuro . In particolare, forti nomi soddisfano i requisiti seguenti:

  • nomi forte garanzia nome unicità affidandosi a coppie di chiavi uniche. Nessuno può generare lo stesso nome assembly che è possibile, poiché un assembly generato con una chiave privata ha un nome diverso rispetto a un assembly generato con un'altra chiave privata.

  • I nomi sicuri proteggono la versione derivazione di un assieme. Un nome sicuro può garantire che nessuno possa produrre una versione successiva dell'assemblaggio dello . Gli utenti possono essere sicuri che una versione di l'assembly che stanno caricando viene dallo stesso editore che ha creato la versione dell'applicazione è stata creata con.

  • I nomi forti forniscono un controllo di integrità valido . Passando a .NET , i controlli di sicurezza del framework garantiscono che il contenuto dell'assembly non sia stato modificato da da quando è stato creato. Si noti, tuttavia, che i nomi forti in e di per sé non implicano un livello di attendibilità come quello fornito, per esempio , da una firma digitale e dal certificato di supporto .

Quando si fa riferimento un forte nome assemblaggio, si aspetta di ottenere alcuni benefici, come ad esempio il controllo delle versioni e denominazione di protezione. Se il forte nome assemblea ha poi riferimento a un assembly con un nome semplice, che non avere questi vantaggi, si perdono i benefici che deriverebbero dall'uso di un assembly con nome e ripristinare conflitti DLL. Pertanto, gli assembly con nome sicuro possono fare riferimento solo ad altri assiemi con nome sicuro .

Problemi correlati