2012-10-31 31 views
12

在我的Visual Studio解決方案中,我有一個網站和4-5個引用的類庫項目,其中一些還引用了外部第三方程序集。每個項目是否應使用單獨的強名稱密鑰(.snk)進行簽名?

我已經被授予簽署這些項目的程序集的任務。

我的理解是,簽名的目的不是每個人都能夠使用我們的程序集而不提供公鑰和版本細節,對嗎?

我是否應該使用一個單一的強名稱鍵(.snk)來簽署這些項目的所有程序集,或者每個程序集應該使用單獨的強名稱鍵進行簽名?

強名字密碼的密碼保護的目的是什麼?

你會怎麼做?

非常感謝,

+2

簽署程序集的目的是爲了確保它們是**原始未修改版本**。每個人都可以自由使用它們(對於授權,還有其他與簽名一起使用的工具),但他們可以確定它們沒有被修改(例如通過惡意軟件),並且它們來自你(因爲私鑰用於簽名是...私人)。 –

+0

Adriano is correct see ... http://msdn.microsoft.com/en-us/library/h4fa028b.aspx 有關如何查看... http://msdn.microsoft.com/en-us/library /xc31ft41.aspx – Kevin

回答

12

,簽署的目的是,不是每個人都能夠使用我們的組件沒有提供自己的公鑰和版本的詳細信息,對不對?

編號簽字驗證,出版者。它可以防止他人制作你的程序集的'假'版本。

我是否應該使用一個單一的強名稱密鑰(.snk)簽署這些項目的所有程序集,或者每個程序集應該使用單獨的強名稱密鑰進行簽名?

關鍵是你的簽名,所以你的項目使用1。

強名字密碼的密碼保護的目的是什麼?

整個簽署過程取決於你是唯一擁有密鑰的人。沒有涉及證書。部分簽名和受保護的密鑰可幫助您限制有權訪問密鑰的人數。

+0

謝謝。那麼.snk文件應該存儲在那裏呢?它不需要放在生產服務器上,對吧? –

+0

構建服務器上將需要密鑰。 –

+0

我是否可以不引用其他未簽名的第三方組件?它給我一個錯誤錯誤程序集生成失敗 - 引用的程序集'NameOfThirdPartyAssembly'沒有強名稱。 –

相關問題