簡體   English   中英

什么是強命名以及如何對二進制文件進行強命名?

[英]What is strong naming and how do I strong name a binary?

我在某處聽說我需要在分發二進制文件之前對其進行強命名。 任何想法這是什么?

Eric Lippert 發布了關於強簽名組件的帖子:

強名稱的目的僅僅是確保當您按名稱加載程序集時,您加載的正是您認為正在加載的程序集 你說“我想加載來自 FooCorp 的 Frobber 版本 4”。 強大的名稱 gear 可確保您實際加載精確的 DLL,而不是來自 Dr. Evil Enterprises 的另一個名為 Frobber 的程序集,版本 4。 然后,您可以設置“如果我的機器上有來自 FooCorp 的程序集,請完全信任它”的安全策略。 這些場景是強名稱的唯一設計目的。

簡而言之,強命名程序集使用證書進行簽名。 它們對 CAS(代碼訪問安全)發揮作用:程序集有權做什么或不做什么。

[編輯] 正如你們中的一些人指出的那樣:確實建議創建強大的程序集,因為如果您編寫了一些插件機制,它們將更強大地抵御攻擊,例如將外部惡意代碼引入您的應用程序。

通過這種方式,您可以限制允許 3rdparty 插件在您的應用程序上下文中執行的操作。

要回答問題的第二部分:如何:使用強名稱簽署程序集

使用 Visual Studio 創建和簽署具有強名稱的程序集

解決方案資源管理器中,打開解決方案的快捷菜單,然后選擇屬性

選擇簽名選項卡。

選擇對程序集簽名框。

選擇強名稱密鑰文件框中,選擇 ,然后導航到密鑰文件。 要創建新的密鑰文件,請選擇並在Create Strong Name Key對話框中輸入其名稱。

在學習強命名程序集時,我發現這篇MSDN 雜志文章很有用。

如果您在談論 .NET 程序集,這里是docs

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM