2014-02-20 75 views
0

我創建了一個簡單的類庫項目。我已經爲延遲簽署的程序集配備了這個類庫項目。現在我延遲簽署的程序集正在調試。這是爲什麼?

,我創建單元測試項目在上述類庫項目來測試一個類。

因爲,我已經使用延遲簽名的程序集爲我的類庫項目,它不應該是調試的,沒錯!但是,它正在調試成功。

我的理解問題在哪裏?

回答

1

延遲簽名專門用於支持您描述的確切場景。基本思想是開發人員不夠信任,無法訪問私鑰。哪些保存在保險庫中,只有少數有責任永久簽署大會的選定人員才能訪問。這限制了私鑰可以被其他人透露並利用中間人攻擊的方式的數量。私鑰保護至關重要。像微軟這樣的公司擔心這種事情。

因此,爲了給開發者一個調試和測試他的代碼的戰鬥機會,他需要一種方法來使它看起來看起來像大會有一個強大的名字。延遲簽名使用臨時私鑰,並將數據放入其註冊表中,記錄此臨時密鑰是真實密鑰的替代品。 CLR在檢查強名稱時會查找此註冊表項,並在發現它時發送它。

所以一切都像平常一樣工作。只要它在延遲簽署程序集的特定機器上完成。如果您將程序集移動到另一個機器並嘗試測試它,那麼它將不再工作,因爲缺少註冊表項。假設打開強名稱驗證。

相關問題