StrongNameIdentityPermission クラス

定義

厳密な名前の ID アクセス許可を定義します。Defines the identity permission for strong names. このクラスは継承できません。This class cannot be inherited.

public ref class StrongNameIdentityPermission sealed : System::Security::CodeAccessPermission
public sealed class StrongNameIdentityPermission : System.Security.CodeAccessPermission
[System.Serializable]
public sealed class StrongNameIdentityPermission : System.Security.CodeAccessPermission
[System.Runtime.InteropServices.ComVisible(true)]
[System.Serializable]
public sealed class StrongNameIdentityPermission : System.Security.CodeAccessPermission
type StrongNameIdentityPermission = class
    inherit CodeAccessPermission
Public NotInheritable Class StrongNameIdentityPermission
Inherits CodeAccessPermission
継承
StrongNameIdentityPermission
属性

注釈

重要

.NET Framework 4.NET Framework 4以降では、id 権限は使用されません。Starting with the .NET Framework 4.NET Framework 4, identity permissions are not used.

.NET Framework バージョン1.0 および1.1 では、id アクセス許可に Unrestricted のアクセス許可状態の値を設定することはできません。In the .NET Framework versions 1.0 and 1.1, identity permissions cannot have an Unrestricted permission state value. .NET Framework バージョン2.0 以降では、id 権限は任意の権限の状態値を持つことができます。In the .NET Framework version 2.0 and later, identity permissions can have any permission state value. つまり、バージョン2.0 以降のバージョンでは、id アクセス許可は IUnrestrictedPermission インターフェイスを実装するアクセス許可と同じ動作になります。This means that in version 2.0 and later versions, identity permissions have the same behavior as permissions that implement the IUnrestrictedPermission interface. つまり、アセンブリに完全な信頼が付与されている場合、アセンブリの id に関係なく、id の要求は常に成功します。That is, a demand for an identity always succeeds, regardless of the identity of the assembly, if the assembly has been granted full trust.

StrongNameIdentityPermission を使用して、呼び出し元のコードが特定の厳密な名前のコードアセンブリにあることを確認します。Use StrongNameIdentityPermission to confirm that the calling code is in a particular strong-named code assembly. StrongNameIdentityPermission の完全な要求は、スタック内のすべてのアセンブリが要求を満たすために正しい証拠を持っている場合にのみ成功します。Full demands for StrongNameIdentityPermission succeed only if all the assemblies in the stack have the correct evidence to satisfy the demand. StrongNameIdentityPermissionAttribute 属性を使用するリンク確認要求は、直前の呼び出し元が正しい証拠を持っている場合にのみ成功します。Link demands that use the StrongNameIdentityPermissionAttribute attribute succeed only if the immediate caller has the correct evidence.

厳密な名前の id は、バイナリラージオブジェクト (BLOB) と呼ばれる暗号化公開キーに基づいています。これは、必要に応じて、特定のアセンブリの名前とバージョンと組み合わせることができます。A strong name identity is based on a cryptographic public key called a binary large object (BLOB), which is optionally combined with the name and version of a specific assembly. キーは、一意の名前空間を定義し、名前が本物であることを厳密に検証します。これは、名前の定義が、対応する秘密キーによって署名されたアセンブリ内に存在する必要があるためです。The key defines a unique namespace and provides strong verification that the name is genuine, because the definition of the name must be in an assembly that is signed by the corresponding private key.

厳密な名前のキーの有効性は、信頼関係や、必ずキーに対して発行される証明書に依存していないことに注意してください。Note that the validity of the strong name key is not dependent on a trust relationship or on any certificate necessarily being issued for the key.

.NET Framework バージョン1.0 および1.1 では、呼び出し元のアセンブリが完全に信頼されている場合でも、id アクセス許可に対する要求が有効になります。In the .NET Framework versions 1.0 and 1.1, demands on the identity permissions are effective even when the calling assembly is fully trusted. つまり、呼び出し元のアセンブリが完全に信頼されている場合でも、アセンブリが要求された条件を満たしていないと、id アクセス許可の要求は失敗します。That is, even if the calling assembly has full trust, a demand for an identity permission fails if the assembly does not meet the demanded criteria. .NET Framework バージョン2.0 以降では、呼び出し元のアセンブリに完全な信頼がある場合、id 権限の要求は無効になります。In the .NET Framework version 2.0 and later, demands for identity permissions are ineffective if the calling assembly has full trust. これにより、すべてのアクセス許可の一貫性が確保され、特殊なケースとしての id アクセス許可の処理が不要になります。This ensures consistency for all permissions and eliminates the treatment of identity permissions as a special case.

厳密な名前の詳細については、StrongName リファレンスページを参照してください。For a complete description of strong names, see the StrongName reference page. 厳密な名前付きアセンブリの詳細については、「厳密な名前付きアセンブリ」を参照してください。For more information about strong-named assemblies, see Strong-named assemblies.

StrongNameIdentityPermission クラスは、型のパブリックメンバーにアクセスするための厳密な名前の要件を定義するために使用されます。The StrongNameIdentityPermission class is used to define strong-name requirements for accessing the public members of a type. StrongNameIdentityPermissionAttribute 属性は、アセンブリレベルで厳密な名前の要件を定義するために使用できます。The StrongNameIdentityPermissionAttribute attribute can be used to define strong-name requirements at the assembly level. .NET Framework バージョン2.0 以降では、InternalsVisibleToAttribute 属性を使用して、そのアセンブリ内のすべての非パブリック型を別のアセンブリから参照できるように指定することもできます。In the .NET Framework version 2.0 and later, you can also use the InternalsVisibleToAttribute attribute to specify that all nonpublic types in that assembly are visible to another assembly. 詳細については、「フレンドアセンブリ」を参照してください。For more information, see Friend assemblies.

コンストラクター

StrongNameIdentityPermission(PermissionState)

指定された StrongNameIdentityPermission を使用して PermissionState クラスの新しいインスタンスを初期化します。Initializes a new instance of the StrongNameIdentityPermission class with the specified PermissionState.

StrongNameIdentityPermission(StrongNamePublicKeyBlob, String, Version)

指定した厳密な名前 ID の StrongNameIdentityPermission クラスの新しいインスタンスを初期化します。Initializes a new instance of the StrongNameIdentityPermission class for the specified strong name identity.

プロパティ

Name

厳密な名前 ID の簡易名の部分を取得または設定します。Gets or sets the simple name portion of the strong name identity.

PublicKey

厳密な名前 ID の名前空間を定義する公開キー blob を取得または設定します。Gets or sets the public key blob that defines the strong name identity namespace.

Version

ID のバージョン番号を取得または設定します。Gets or sets the version number of the identity.

メソッド

Assert()

呼び出し側コードが、このメソッドを呼び出すコードを通じて、アクセス許可要求によって保護されているリソースにアクセス可能であるということ、それも、スタックの中で上位に位置する呼び出し側にリソースへのアクセス許可が付与されていない場合でさえそれが可能であることを宣言します。Declares that the calling code can access the resource protected by a permission demand through the code that calls this method, even if callers higher in the stack have not been granted permission to access the resource. Assert() を使用すると、セキュリティ上の問題が発生することがあります。Using Assert() can create security issues.

(継承元 CodeAccessPermission)
Copy()

現在のアクセス許可の同一のコピーを作成して返します。Creates and returns an identical copy of the current permission.

Demand()

呼び出し履歴の上位にあるすべての呼び出し元に、現在のインスタンスによって指定されているアクセス許可が付与されていない場合、実行時に SecurityException を強制します。Forces a SecurityException at run time if all callers higher in the call stack have not been granted the permission specified by the current instance.

(継承元 CodeAccessPermission)
Deny()

呼び出し履歴内の上位の呼び出し元が、このメソッドを呼び出すコードを使用して、現在のインスタンスで指定されたリソースにアクセスしないようにします。Prevents callers higher in the call stack from using the code that calls this method to access the resource specified by the current instance.

(継承元 CodeAccessPermission)
Equals(Object)

指定した CodeAccessPermission オブジェクトが、現在の CodeAccessPermission と等しいかどうかを判断します。Determines whether the specified CodeAccessPermission object is equal to the current CodeAccessPermission.

(継承元 CodeAccessPermission)
FromXml(SecurityElement)

XML エンコードから指定された状態で、アクセス許可を再構築します。Reconstructs a permission with a specified state from an XML encoding.

GetHashCode()

ハッシュ アルゴリズムや、ハッシュ テーブルのようなデータ構造での使用に適している、CodeAccessPermission オブジェクトのハッシュ コードを取得します。Gets a hash code for the CodeAccessPermission object that is suitable for use in hashing algorithms and data structures such as a hash table.

(継承元 CodeAccessPermission)
GetType()

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

(継承元 Object)
Intersect(IPermission)

現在のアクセス許可と指定したアクセス許可の積集合となるアクセス許可を作成して返します。Creates and returns a permission that is the intersection of the current permission and the specified permission.

IsSubsetOf(IPermission)

現在のアクセス許可が、指定したアクセス許可のサブセットであるかどうかを判断します。Determines whether the current permission is a subset of the specified permission.

MemberwiseClone()

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

(継承元 Object)
PermitOnly()

呼び出し履歴内の上位の呼び出し元が、このメソッドを呼び出すコードでは一切リソースにアクセスできないようにします。ただし、現在のインスタンスで指定されているリソースは例外です。Prevents callers higher in the call stack from using the code that calls this method to access all resources except for the resource specified by the current instance.

(継承元 CodeAccessPermission)
ToString()

現在のアクセス許可オブジェクトの文字列形式を作成して返します。Creates and returns a string representation of the current permission object.

(継承元 CodeAccessPermission)
ToXml()

アクセス許可とその現在の状態の XML エンコードを作成します。Creates an XML encoding of the permission and its current state.

Union(IPermission)

現在のアクセス許可と指定されたアクセス許可の和集合であるアクセス許可を作成します。Creates a permission that is the union of the current permission and the specified permission.

明示的なインターフェイスの実装

IPermission.Demand() (継承元 CodeAccessPermission)
IStackWalk.Assert() (継承元 CodeAccessPermission)
IStackWalk.Demand() (継承元 CodeAccessPermission)
IStackWalk.Deny() (継承元 CodeAccessPermission)
IStackWalk.PermitOnly() (継承元 CodeAccessPermission)

適用対象

こちらもご覧ください