AssemblySignatureKeyAttribute クラス


古い、単純な厳密名キーから、より強力なハッシュ アルゴリズムを持つ、より大きなキーへの移行を提供します。Provides migration from an older, simpler strong name key to a larger key with a stronger hashing algorithm.

public ref class AssemblySignatureKeyAttribute sealed : Attribute
[System.AttributeUsage(System.AttributeTargets.Assembly, AllowMultiple=false, Inherited=false)]
public sealed class AssemblySignatureKeyAttribute : Attribute
type AssemblySignatureKeyAttribute = class
    inherit Attribute
Public NotInheritable Class AssemblySignatureKeyAttribute
Inherits Attribute


新しい大きなキーは、署名キーです。The new larger key is the signature key. .NET Framework 4.5.NET Framework 4.5より前のバージョンでは、署名キーは id キーと同じでした。In versions before the .NET Framework 4.5.NET Framework 4.5, the signature key was identical to the identity key. .NET Framework 4.5.NET Framework 4.5以降では、AssemblySignatureKeyAttribute 属性を使用して、既存のアセンブリ参照が引き続き機能するように、アセンブリメタデータに古い公開キートークンとバイナリラージオブジェクト (BLOB) を継続させることができます。Starting with the .NET Framework 4.5.NET Framework 4.5, the AssemblySignatureKeyAttribute attribute allows the assembly metadata to continue to have the old public key token and binary large object (BLOB) so that existing assembly references continue to work. また、id キーの所有者からマッピングが行われることも保証されます。It also ensures that the mapping comes from an owner of the identity key.

属性が存在することは、厳密な名前の検証が行われることを意味するわけではありません。The presence of the attribute does not necessarily mean that strong name validation takes place. 一般的な完全信頼のシナリオでは、厳密な名前の署名は検証されないため、属性は考慮されません。In common full-trust scenarios, the attribute is never considered, because strong name signatures are never validated. ただし、厳密な名前の署名を検証する必要がある場合は、厳密な名前の署名と副署名の両方を検証する必要があります。However, when the strong name signature does have to be validated, both the strong name signature and the countersignature must be validated. アセンブリの id キーは、署名キー (実際の署名と検証に使用されるキー) と同じである必要はありません。The assembly's identity key does not have to be identical to the signature key (the key used to do the actual signing and validation). Id キーは、別の (より堅牢な) 署名キーにマップできます。The identity key can be mapped to a different (more robust) signing key. これにより、アセンブリの id を設定し、署名キーとアルゴリズムをより安全なバージョンに更新できます。This lets you set the identity of an assembly, and update the signing keys and algorithms to more secure versions.

この副署名は、悪意のあるアセンブリが他の id を要求するときのセキュリティの問題に対処します。The countersignature addresses security concerns when a malicious assembly claims some other identity. たとえば、悪意のある system.servicemodel アセンブリには、Microsoft 公開キーをメタデータに含めることができます。また、属性を使用して、副署名が存在しない場合に、攻撃者の署名キーを使用するように厳密な名前の検証を指示します。For example, a malicious System.Core.dll assembly could contain the Microsoft public key in its metadata, and use the attribute to tell strong name validation to use the attacker's signature key if no countersignature is present. したがって、厳密な名前で検証された Microsoft アセンブリとしては、そのようにすることができます。Thus, it could masquerade as a strong name-validated Microsoft assembly.

この新しい属性で使用するためにアセンブリに署名する方法については、「拡張された厳密な名前付け」を参照してください。For information about how to sign assemblies for use with this new attribute, see Enhanced Strong Naming.


AssemblySignatureKeyAttribute(String, String)

指定したパブリック キーと副署名を使用して、AssemblySignatureKeyAttribute クラスの新しいインスタンスを作成します。Creates a new instance of the AssemblySignatureKeyAttribute class by using the specified public key and countersignature.



このアセンブリの厳密な名前の副署名を取得します。Gets the countersignature for the strong name for this assembly.


アセンブリに署名するために使用される厳密な名前の公開キーを取得します。Gets the public key for the strong name used to sign the assembly.


派生クラスで実装されると、この Attribute の一意の識別子を取得します。When implemented in a derived class, gets a unique identifier for this Attribute.

(継承元 Attribute)



このインスタンスが、指定されたオブジェクトと等価であるかどうかを示す値を返します。Returns a value that indicates whether this instance is equal to a specified object.

(継承元 Attribute)

このインスタンスのハッシュ コードを返します。Returns the hash code for this instance.

(継承元 Attribute)

現在のインスタンスの Type を取得します。Gets the Type of the current instance.

(継承元 Object)

派生クラスでオーバーライドされるとき、このインスタンスの値が派生クラスの既定値であるかどうかを示します。When overridden in a derived class, indicates whether the value of this instance is the default value for the derived class.

(継承元 Attribute)

派生クラス内でオーバーライドされたときに、指定したオブジェクトとこのインスタンスが等しいかどうかを示す値を返します。When overridden in a derived class, returns a value that indicates whether this instance equals a specified object.

(継承元 Attribute)

現在の Object の簡易コピーを作成します。Creates a shallow copy of the current Object.

(継承元 Object)

現在のオブジェクトを表す文字列を返します。Returns a string that represents the current object.

(継承元 Object)


_Attribute.GetIDsOfNames(Guid, IntPtr, UInt32, UInt32, IntPtr)

一連の名前を対応する一連のディスパッチ識別子にマップします。Maps a set of names to a corresponding set of dispatch identifiers.

(継承元 Attribute)
_Attribute.GetTypeInfo(UInt32, UInt32, IntPtr)

オブジェクトの型情報を取得します。この情報はインターフェイスの型情報の取得に使用できます。Retrieves the type information for an object, which can be used to get the type information for an interface.

(継承元 Attribute)

オブジェクトが提供する型情報インターフェイスの数 (0 または 1) を取得します。Retrieves the number of type information interfaces that an object provides (either 0 or 1).

(継承元 Attribute)
_Attribute.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr)

オブジェクトによって公開されたプロパティおよびメソッドへのアクセスを提供します。Provides access to properties and methods exposed by an object.

(継承元 Attribute)