厳密な名前のシナリオ
厳密な名前でアセンブリに署名してから、その名前を使用してアセンブリを参照するプロセスの概要を、次のシナリオに示します。
- 厳密な名前付きのアセンブリ A を、次の方法の 1 つを使用して作成します。
Visual Studio 2005 など、厳密な名前の作成をサポートする開発環境を使用します。
開発環境またはツールが、アセンブリ マニフェストを格納するファイルのハッシュに、開発者の秘密キーで署名します。このデジタル署名は、アセンブリ A のマニフェストを格納するポータブル実行可能 (PE) ファイルに格納されます。
アセンブリ B はアセンブリ A のコンシューマです。アセンブリ B のマニフェストの参照セクションには、アセンブリ A の公開キーを表すトークンが含まれます。トークンは完全な公開キーの一部であり、領域を節約するためにキー自体の代わりに使用されます。
共通言語ランタイムは、アセンブリがグローバル アセンブリ キャッシュに配置されるときに、厳密な名前の署名を検証します。実行時に厳密な名前によってバインドする場合、共通言語ランタイムは、アセンブリ B のマニフェストに格納されたキーと、アセンブリ A の厳密な名前の生成に使用されたキーを比較します。.NET Framework のセキュリティ チェックに合格してバインドが成功した場合、アセンブリ A のビットは変更がなく、アセンブリ A の開発者が提供したビットと同一であることが、アセンブリ B に対して保証されます。
メモ : このシナリオでは、信頼性問題は扱いません。アセンブリは、厳密な名前に加えて、完全な Microsoft® Authenticode® 署名を持つことができます。Authenticode 署名には、信頼を確立する証明書が含まれます。厳密な名前はこの方法でのコード署名を必要としないことに注意してください。厳密な名前の署名の生成に使用するキーは、Authenticode 署名の生成に使用するキーと同じである必要はありません。
参照
関連項目
厳密名ツール (Sn.exe)
アセンブリ リンカ (Al.exe)