基本介紹
- 中文名:強命名
- 外文名:Strong Name Assembly
- 類別:程式集
- 套用:編程
- 組成:PE表頭,CLR表頭,元數據
程式集的概念,使用原因,
程式集的概念
一個強命名程式集包含四個唯一標誌程式集的特性:檔案名稱(沒有擴展名),版本號,語言文化信息(如果有的話),公有秘鑰。
如果一個公司想唯一的標識它的程式集,那么它必須首先獲取一個公鑰/私鑰對,然後將共有秘鑰和程式集相關聯。不存在兩個兩個公司有同樣的公鑰/私鑰對的情況,正是這種區分使得我們可以創建有著相同名稱,版本和語言文化信息的程式集,而不引起任何衝突。
與強命名程式集對應的就是所謂的弱命名程式集。(其實就是普通的沒有被強命名的程式集)。兩種程式集在結構上是相同的。都使用相同的PE檔案格式,,以及清單(manifest)。二者之間真正的區別在於:強命名程式集有一個發布者的公鑰/私鑰對簽名,其中的公鑰/私鑰對唯一的標識了程式集的發布者。利用公鑰/私鑰對,我們可以對程式集進行唯一性識別、實施安全策略和版本控制策略,這種唯一標識程式集的能力使得應用程式在試圖綁定一個強命名程式集時,CLR能夠實施某些“已確知安全”的策略(比如只信任某個公司的程式集)。
使用原因
microsoftmicrosoftmicrosoft
強名稱程式集在以下方案中有用:
- 你希望啟用強名稱程式集將引用的程式集,或希望允許其他強名稱程式集friend訪問你的程式集。
- 你不希望程式集的使用對應用程式性能產生負面影響,所以你想要非特定於域的程式集。這就要求進行強命名,因為非特定於域的程式集必須安裝在全局程式集快取中。
- 如果你希望通過套用發布伺服器策略來集中應用程式的服務,則意味著程式集必須安裝在全局程式集快取中。