WebPermission Classe

Definizione

Attenzione

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

Controlla i diritti di accesso alle risorse Internet HTTP.

public ref class WebPermission sealed : System::Security::CodeAccessPermission, System::Security::Permissions::IUnrestrictedPermission
[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 WebPermission : System.Security.CodeAccessPermission, System.Security.Permissions.IUnrestrictedPermission
[System.Serializable]
public sealed class WebPermission : System.Security.CodeAccessPermission, System.Security.Permissions.IUnrestrictedPermission
public sealed class WebPermission : System.Security.CodeAccessPermission, System.Security.Permissions.IUnrestrictedPermission
[<System.Obsolete("Code Access Security is not supported or honored by the runtime.", DiagnosticId="SYSLIB0003", UrlFormat="https://aka.ms/dotnet-warnings/{0}")>]
type WebPermission = class
    inherit CodeAccessPermission
    interface IUnrestrictedPermission
[<System.Serializable>]
type WebPermission = class
    inherit CodeAccessPermission
    interface IUnrestrictedPermission
type WebPermission = class
    inherit CodeAccessPermission
    interface IUnrestrictedPermission
Public NotInheritable Class WebPermission
Inherits CodeAccessPermission
Implements IUnrestrictedPermission
Ereditarietà
Attributi
Implementazioni

Esempio

Nell'esempio seguente viene illustrato come creare una nuova istanza di WebPermission usando un oggetto Regex. Altri host vengono aggiunti alla connessione e accettano l'elenco di WebPermission. Infine, l'elenco di connessione e accettazione viene visualizzato nella console.

//  Create a Regex that accepts all URLs containing the host fragment www.contoso.com.
Regex^ myRegex = gcnew Regex( "http://www\\.contoso\\.com/.*" );

// Create a WebPermission that gives permissions to all the hosts containing the same host fragment.
WebPermission^ myWebPermission = gcnew WebPermission( NetworkAccess::Connect,myRegex );

//Add connect privileges for a www.adventure-works.com.
myWebPermission->AddPermission( NetworkAccess::Connect, "http://www.adventure-works.com" );

//Add accept privileges for www.alpineskihouse.com.
myWebPermission->AddPermission( NetworkAccess::Accept, "http://www.alpineskihouse.com/" );

// Check whether all callers higher in the call stack have been granted the permission.
myWebPermission->Demand();

// Get all the URIs with Connect permission.
IEnumerator^ myConnectEnum = myWebPermission->ConnectList;
Console::WriteLine( "\nThe 'URIs' with 'Connect' permission are :\n" );
while ( myConnectEnum->MoveNext() )
{
   Console::WriteLine( "\t{0}", myConnectEnum->Current );
}

// Get all the URIs with Accept permission.   
IEnumerator^ myAcceptEnum = myWebPermission->AcceptList;
Console::WriteLine( "\n\nThe 'URIs' with 'Accept' permission is :\n" );

while ( myAcceptEnum->MoveNext() )
{
   Console::WriteLine( "\t{0}", myAcceptEnum->Current );
}

   //  Create a Regex that accepts all URLs containing the host fragment www.contoso.com.
   Regex myRegex = new Regex(@"http://www\.contoso\.com/.*");

   // Create a WebPermission that gives permissions to all the hosts containing the same host fragment.
   WebPermission myWebPermission = new WebPermission(NetworkAccess.Connect,myRegex);
   
   //Add connect privileges for a www.adventure-works.com.
   myWebPermission.AddPermission(NetworkAccess.Connect,"http://www.adventure-works.com");
   
   //Add accept privileges for www.alpineskihouse.com.
   myWebPermission.AddPermission(NetworkAccess.Accept, "http://www.alpineskihouse.com/");
   
   // Check whether all callers higher in the call stack have been granted the permission.
   myWebPermission.Demand();
   
   // Get all the URIs with Connect permission.
   IEnumerator myConnectEnum = myWebPermission.ConnectList;
   Console.WriteLine("\nThe 'URIs' with 'Connect' permission are :\n");
   while (myConnectEnum.MoveNext())
   {Console.WriteLine("\t" + myConnectEnum.Current);}

   // Get all the URIs with Accept permission.	  
   IEnumerator myAcceptEnum = myWebPermission.AcceptList;
   Console.WriteLine("\n\nThe 'URIs' with 'Accept' permission is :\n");
     
   while (myAcceptEnum.MoveNext())
     {Console.WriteLine("\t" + myAcceptEnum.Current);}
  ' Create a Regex that accepts all the URLs contianing the host fragment www.contoso.com.
  Dim myRegex As New Regex("http://www\.contoso\.com/.*")
    
  ' Create a WebPermission that gives permission to all the hosts containing same host fragment.
  Dim myWebPermission As New WebPermission(NetworkAccess.Connect, myRegex)
  ' Add connect privileges for a www.adventure-works.com.
  myWebPermission.AddPermission(NetworkAccess.Connect, "http://www.adventure-works.com")
  ' Add accept privileges for www.alpineskihouse.com.
  myWebPermission.AddPermission(NetworkAccess.Accept, "http://www.alpineskihouse.com/")
  ' Check whether all callers higher in the call stack have been granted the permission.
  myWebPermission.Demand()
    
  ' Get all the URIs with Connect permission.
  Dim myConnectEnum As IEnumerator = myWebPermission.ConnectList
  Console.WriteLine(ControlChars.NewLine + "The 'URIs' with 'Connect' permission are :" + ControlChars.NewLine)
  While myConnectEnum.MoveNext()
    Console.WriteLine((ControlChars.Tab + myConnectEnum.Current.ToString()))
  End While 
  
  ' Get all the URIs with Accept permission.	  
  Dim myAcceptEnum As IEnumerator = myWebPermission.AcceptList
  Console.WriteLine(ControlChars.NewLine + ControlChars.NewLine + "The 'URIs' with 'Accept' permission is :" + ControlChars.NewLine)

  While myAcceptEnum.MoveNext()
    Console.WriteLine((ControlChars.Tab + myAcceptEnum.Current))
  End While

Commenti

Attenzione

La sicurezza dall'accesso al codice è stata deprecata in tutte le versioni di .NET Framework e .NET. Le versioni recenti di .NET non rispettano le annotazioni CAS e generano errori se vengono usate API correlate a CAS. Gli sviluppatori devono cercare metodi alternativi per eseguire attività di sicurezza.

WebPermission fornisce un set di metodi e proprietà per controllare l'accesso alle risorse Internet. È possibile usare un WebPermission oggetto per fornire l'accesso limitato o senza restrizioni alla risorsa, in base all'oggetto PermissionState impostato al momento della WebPermission creazione di .

Creare un'istanza WebPermission chiamando il relativo costruttore usando uno dei set di parametri seguenti:

e ConnectListAcceptList conservare gli URI a cui è stata concessa l'autorizzazione di accesso. Per aggiungere un URI a uno di questi elenchi, usare AddPermission. Se si passa Accept come NetworkAccess parametro, l'URI verrà aggiunto a AcceptList. WebPermission consentirà le connessioni alla classe di destinazione con URI corrispondenti a AcceptList.

Attenzione

Per negare l'accesso a una risorsa Internet, è necessario negare l'accesso a tutti i percorsi possibili per tale risorsa. È necessario chiamare WebPermission.WebPermission con il parametro state impostato su Deny. Un approccio migliore consiste nel consentire l'accesso solo alla risorsa specifica. Per altre informazioni su questo argomento, vedere l'argomento Utilizzo del metodo Deny .

Nota

È necessario negare l'accesso usando solo il percorso canonico della risorsa. Non è necessario usare tutte le varianti sintattiche del percorso.

Nota

Le informazioni sul nome utente e sulla porta predefinite vengono rimosse da Uri prima del confronto con l'argomento dell'espressione regolare fornito al WebPermission(NetworkAccess, Regex) costruttore. Se l'espressione regolare contiene informazioni sull'utente o il numero di porta predefinito, tutte le espressioni in ingresso Urinon corrispondono all'espressione regolare.

Costruttori

WebPermission()
Obsoleti.

Crea una nuova istanza della classe WebPermission.

WebPermission(NetworkAccess, Regex)
Obsoleti.

Inizializza una nuova istanza della classe WebPermission con i diritti di accesso specificati per l'espressione regolare dell'URI specificato.

WebPermission(NetworkAccess, String)
Obsoleti.

Inizializza una nuova istanza della classe WebPermission con i diritti di accesso specificati per l'URI specificato.

WebPermission(PermissionState)
Obsoleti.

Crea una nuova istanza della classe WebPermission, che passa tutte le richieste oppure determina l'esito negativo di tutte le richieste.

Proprietà

AcceptList
Obsoleti.

Questa proprietà restituisce una enumerazione di una singola autorizzazione di accettazione contenuta da questa WebPermission. I tipi di oggetto possibili contenuti nell'enumerazione restituita sono String e Regex.

ConnectList
Obsoleti.

Questa proprietà restituisce una enumerazione di una singola autorizzazione di connessione contenuta in questa WebPermission. I tipi di oggetto possibili contenuti nell'enumerazione restituita sono String e Regex.

Metodi

AddPermission(NetworkAccess, Regex)
Obsoleti.

Aggiunge l'URI specificato con i diritti di accesso specificati alla WebPermission corrente.

AddPermission(NetworkAccess, String)
Obsoleti.

Aggiunge la stringa dell'URI specificato con i diritti di accesso specificati alla WebPermission corrente.

Assert()
Obsoleti.

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()
Obsoleti.

Crea una copia di una classe WebPermission.

Demand()
Obsoleti.

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()
Obsoleti.
Obsoleti.

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)
Obsoleti.

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

(Ereditato da CodeAccessPermission)
FromXml(SecurityElement)
Obsoleti.

Ricostruisce una WebPermission da una codifica XML.

GetHashCode()
Obsoleti.

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()
Obsoleti.

Ottiene l'oggetto Type dell'istanza corrente.

(Ereditato da Object)
Intersect(IPermission)
Obsoleti.

Restituisce l'intersezione logica di due istanze di WebPermission.

IsSubsetOf(IPermission)
Obsoleti.

Determina se la WebPermission corrente è un sottoinsieme dell'oggetto specificato.

IsUnrestricted()
Obsoleti.

Controlla lo stato generale dell'autorizzazione di WebPermission.

MemberwiseClone()
Obsoleti.

Crea una copia superficiale dell'oggetto Object corrente.

(Ereditato da Object)
PermitOnly()
Obsoleti.

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()
Obsoleti.

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

(Ereditato da CodeAccessPermission)
ToXml()
Obsoleti.

Crea una codifica XML di una WebPermission e del relativo stato corrente.

Union(IPermission)
Obsoleti.

Restituisce l'unione logica tra due istanze della classe WebPermission.

Si applica a

Vedi anche