StrongNameIdentityPermission Classe

Definizione

Attenzione

Code Access Security is not supported or honored by the runtime.

Definisce l'autorizzazione di identità per i nomi sicuri. La classe non può essere ereditata.

public ref class StrongNameIdentityPermission sealed : System::Security::CodeAccessPermission
public sealed class StrongNameIdentityPermission : System.Security.CodeAccessPermission
[System.Obsolete("Code Access Security is not supported or honored by the runtime.", DiagnosticId="SYSLIB0003", UrlFormat="https://aka.ms/dotnet-warnings/{0}")]
public sealed class StrongNameIdentityPermission : System.Security.CodeAccessPermission
[System.Serializable]
public sealed class StrongNameIdentityPermission : System.Security.CodeAccessPermission
[System.Serializable]
[System.Runtime.InteropServices.ComVisible(true)]
public sealed class StrongNameIdentityPermission : System.Security.CodeAccessPermission
type StrongNameIdentityPermission = class
    inherit CodeAccessPermission
[<System.Obsolete("Code Access Security is not supported or honored by the runtime.", DiagnosticId="SYSLIB0003", UrlFormat="https://aka.ms/dotnet-warnings/{0}")>]
type StrongNameIdentityPermission = class
    inherit CodeAccessPermission
[<System.Serializable>]
type StrongNameIdentityPermission = class
    inherit CodeAccessPermission
[<System.Serializable>]
[<System.Runtime.InteropServices.ComVisible(true)>]
type StrongNameIdentityPermission = class
    inherit CodeAccessPermission
Public NotInheritable Class StrongNameIdentityPermission
Inherits CodeAccessPermission
Ereditarietà
StrongNameIdentityPermission
Attributi

Commenti

Importante

A partire dal .NET Framework 4, le autorizzazioni di identità non vengono usate.

Nelle versioni .NET Framework 1.0 e 1.1 le autorizzazioni di identità non possono avere un Unrestricted valore di stato di autorizzazione. Nella versione .NET Framework versione 2.0 e successive, le autorizzazioni di identità possono avere qualsiasi valore dello stato di autorizzazione. Ciò significa che nella versione 2.0 e versioni successive le autorizzazioni di identità hanno lo stesso comportamento delle autorizzazioni che implementano IUnrestrictedPermission l'interfaccia . In altri parole, la richiesta di un'identità ha sempre esito positivo, indipendentemente dall'identità dell'assembly, se all'assembly è stata concessa l'attendibilità totale.

Usare StrongNameIdentityPermission per verificare che il codice chiamante si trova in un particolare assembly di codice con nome sicuro. Le richieste complete per hanno esito positivo solo se tutti gli assembly nello stack hanno StrongNameIdentityPermission l'evidenza corretta per soddisfare la richiesta. Le richieste di collegamento che usano StrongNameIdentityPermissionAttribute l'attributo hanno esito positivo solo se il chiamante immediato ha l'evidenza corretta.

Un'identità con nome sicuro è basata su una chiave pubblica crittografica denominata BLOB (Binary Large Object), che viene facoltativamente combinata con il nome e la versione di un assembly specifico. La chiave definisce uno spazio dei nomi univoco e fornisce una verifica sicuro che il nome sia originale, perché la definizione del nome deve essere in un assembly firmato dalla chiave privata corrispondente.

Si noti che la validità della chiave con nome sicuro non dipende da una relazione di trust o da qualsiasi certificato emesso necessariamente per la chiave.

Nelle versioni .NET Framework 1.0 e 1.1, le richieste sulle autorizzazioni di identità sono effettive anche quando l'assembly chiamante è completamente attendibile. Ciò significa che, anche se l'assembly chiamante dispone di attendibilità totale, la richiesta di un'autorizzazione di identità ha esito negativo se l'assembly non soddisfa i criteri richiesti. Nella versione .NET Framework versione 2.0 e successive, le richieste di autorizzazioni di identità sono inefficaci se l'assembly chiamante ha attendibilità totale. Ciò garantisce la coerenza per tutte le autorizzazioni ed elimina il trattamento delle autorizzazioni di identità come caso speciale.

Per una descrizione completa dei nomi sicuri, vedere la StrongName pagina di riferimento. Per altre informazioni sugli assembly con nome sicuro, vedere Assembly con nome sicuro.

La StrongNameIdentityPermission classe viene usata per definire i requisiti di nome sicuro per l'accesso ai membri pubblici di un tipo. StrongNameIdentityPermissionAttributeL'attributo può essere usato per definire i requisiti del nome sicuro a livello di assembly. Nel .NET Framework versione 2.0 e successive, è anche possibile usare l'attributo per specificare che tutti i tipi non pubblico nell'assembly sono visibili a un InternalsVisibleToAttribute altro assembly. Per altre informazioni, vedere Assembly Friend.

Costruttori

StrongNameIdentityPermission(PermissionState)

Inizializza una nuova istanza della classe StrongNameIdentityPermission con l'oggetto PermissionState specificato.

StrongNameIdentityPermission(StrongNamePublicKeyBlob, String, Version)

Inizializza una nuova istanza della classe StrongNameIdentityPermission per l'identità del nome sicuro specificato.

Proprietà

Name

Ottiene o imposta la parte del nome semplice dell'identità del nome sicuro.

PublicKey

Ottiene o imposta il BLOB a chiave pubblica che definisce lo spazio dei nomi dell'identità del nome sicuro.

Version

Ottiene o imposta il numero di versione dell'identità.

Metodi

Assert()

Dichiara che il codice chiamante può accedere alla risorsa protetta da una richiesta di autorizzazione tramite il codice che chiama il metodo, anche se ai chiamanti più in alto nello stack non è stata concessa l'autorizzazione per accedere alla risorsa. L'uso di Assert() può creare problemi di sicurezza.

(Ereditato da CodeAccessPermission)
Copy()

Crea e restituisce una copia identica dell'autorizzazione corrente.

Demand()

Forza un oggetto SecurityException in fase di esecuzione se tutti i chiamanti in posizioni superiori nello stack di chiamate non hanno l'autorizzazione specificata dall'istanza corrente.

(Ereditato da CodeAccessPermission)
Deny()
Obsoleta.
Obsoleta.

Impedisce ai chiamanti in posizione più elevata nello stack di chiamate di usare il codice che chiama questo metodo per accedere alla risorsa specificata dall'istanza corrente.

(Ereditato da CodeAccessPermission)
Equals(Object)

Consente di determinare se l'oggetto CodeAccessPermission specificato è uguale all'oggetto CodeAccessPermission corrente.

(Ereditato da CodeAccessPermission)
FromXml(SecurityElement)

Ricostruisce un'autorizzazione con uno stato specificato da una codifica XML.

GetHashCode()

Ottiene un codice hash per l'oggetto CodeAccessPermission adatto per l'uso in algoritmi di hash e in strutture di dati, come una tabella hash.

(Ereditato da CodeAccessPermission)
GetType()

Ottiene l'oggetto Type dell'istanza corrente.

(Ereditato da Object)
Intersect(IPermission)

Crea e restituisce un'autorizzazione che rappresenta l'intersezione tra l'autorizzazione corrente e quella specificata.

IsSubsetOf(IPermission)

Determina se l'autorizzazione corrente è un subset di quella specificata.

MemberwiseClone()

Crea una copia superficiale dell'oggetto Object corrente.

(Ereditato da Object)
PermitOnly()

Impedisce ai chiamanti in posizione più elevata nello stack di chiamate di usare il codice che chiama questo metodo per accedere a tutte le risorse eccetto quella specificata dall'istanza corrente.

(Ereditato da CodeAccessPermission)
ToString()

Crea e restituisce una rappresentazione di stringa dell'oggetto autorizzazione corrente.

(Ereditato da CodeAccessPermission)
ToXml()

Crea una codifica XML dell'autorizzazione e del relativo stato corrente.

Union(IPermission)

Crea un'autorizzazione che rappresenta l'unione dell'autorizzazione corrente e di quella specificata.

Implementazioni dell'interfaccia esplicita

IPermission.Demand()

Genera un'eccezione SecurityException in fase di esecuzione se non viene soddisfatto il requisito di sicurezza.

(Ereditato da CodeAccessPermission)
IStackWalk.Assert()

Dichiara che il codice chiamante può accedere alla ricorsa identificata dall'oggetto autorizzazioni corrente, anche se ai chiamanti più in alto nello stack non è stata concessa l'autorizzazione ad accedere alla risorsa.

(Ereditato da CodeAccessPermission)
IStackWalk.Demand()

Determina in fase di esecuzione se tutti i chiamanti nello stack di chiamate hanno l'autorizzazione specificata dall'oggetto autorizzazioni corrente.

(Ereditato da CodeAccessPermission)
IStackWalk.Deny()

Causa l'esito negativo di ogni oggetto Demand() per l'oggetto corrente che passa attraverso il codice chiamante.

(Ereditato da CodeAccessPermission)
IStackWalk.PermitOnly()

Causa un errore per ogni metodo Demand() che attraversa il codice chiamante per tutti gli oggetti ad eccezione dell'oggetto corrente, anche se al codice di livello superiore nello stack di chiamate è stata concessa l'autorizzazione per accedere ad altre risorse.

(Ereditato da CodeAccessPermission)

Si applica a

Vedi anche