WebPermission Classe

Definizione

Attenzione

Code Access Security is not supported or honored by the runtime.", DiagnosticId="SYSLIB0003", UrlFormat="https://aka.ms/dotnet-warnings/{0}

Controlla i diritti di accesso alle risorse Internet HTTP.Controls rights to access HTTP Internet resources.

public ref class WebPermission sealed : 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}")]
public sealed class WebPermission : System.Security.CodeAccessPermission, System.Security.Permissions.IUnrestrictedPermission
[System.Serializable]
public sealed class WebPermission : System.Security.CodeAccessPermission, System.Security.Permissions.IUnrestrictedPermission
type WebPermission = class
    inherit CodeAccessPermission
    interface 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
Public NotInheritable Class WebPermission
Inherits CodeAccessPermission
Implements IUnrestrictedPermission
Ereditarietà
Attributi
Implementazioni

Esempio

Nell'esempio seguente viene illustrato come creare una nuova istanza di WebPermission utilizzando un oggetto Regex .The following example demonstrates how to create a new instance of WebPermission using a Regex. Gli host aggiuntivi vengono aggiunti all'elenco Connetti e accetta di WebPermission .Additional hosts are added to the connect and accept list of WebPermission. Infine, l'elenco Connetti e accetta viene visualizzato nella console.Finally, the connect and accept list are displayed to the 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

WebPermission fornisce un set di metodi e proprietà per controllare l'accesso alle risorse Internet.WebPermission provides a set of methods and properties to control access to Internet resources. È possibile usare un oggetto WebPermission per fornire accesso limitato o illimitato alla risorsa, in base all'oggetto PermissionState impostato al momento della creazione di WebPermission .You can use a WebPermission to provide either restricted or unrestricted access to your resource, based on the PermissionState that is set when the WebPermission is created.

Creare un' WebPermission istanza di chiamando il relativo costruttore utilizzando uno dei seguenti set di parametri:Create a WebPermission instance by calling its constructor using one of the following sets of parameters:

ConnectListE AcceptList contengono gli URI a cui è stata concessa l'autorizzazione di accesso.The ConnectList and AcceptList hold the URIs to which you have granted access permission. Per aggiungere un URI a uno di questi elenchi, usare AddPermission .To add a URI to either of these lists, use AddPermission. Se si passa Accept come NetworkAccess parametro, l'URI verrà aggiunto a AcceptList .If you pass Accept as the NetworkAccess parameter, the URI will be added to the AcceptList. WebPermission consentirà le connessioni alla classe di destinazione con gli URI che corrispondono a AcceptList .WebPermission will allow connections to your target class with URIs matching the AcceptList.

Attenzione

Per negare l'accesso a una risorsa Internet, è necessario negare l'accesso a tutti i percorsi possibili di tale risorsa.To deny access to an Internet resource, you must deny access to all the possible paths to that resource. Questa operazione richiede la chiamata a WebPermission.WebPermission con il parametro di stato impostato su Deny .This requires calling WebPermission.WebPermission with state parameter set to Deny. Un approccio migliore consiste nel consentire l'accesso solo alla risorsa specifica.A better approach is to allow access to the specific resource only. Per ulteriori informazioni su questo argomento, vedere l'argomento utilizzo del metodo Deny .For more information about this subject, refer to the Using the Deny Method topic.

Nota

È necessario negare l'accesso usando solo il percorso canonico della risorsa.You need to deny access using only the resource canonical path. Non è necessario usare tutte le varianti sintattiche del percorso.There is no need to use all the path's syntactical variations.

Nota

Il nome utente e le informazioni sulla porta predefinita vengono rimossi da Uri prima del confronto con l'argomento dell'espressione regolare fornito al WebPermission(NetworkAccess, Regex) costruttore.User name and default port information is stripped from the Uri before the comparison with the regular expression argument that is supplied to the WebPermission(NetworkAccess, Regex) constructor. Se l'espressione regolare contiene informazioni sull'utente o il numero di porta predefinito, tutti i dati in ingresso Uri non riusciranno a corrispondere all'espressione regolare.If the regular expression contains user information or the default port number, then all incoming Uris will fail to match the regular expression.

Costruttori

WebPermission()

Crea una nuova istanza della classe WebPermission.Creates a new instance of the WebPermission class.

WebPermission(NetworkAccess, Regex)

Inizializza una nuova istanza della classe WebPermission con i diritti di accesso specificati per l'espressione regolare dell'URI specificato.Initializes a new instance of the WebPermission class with the specified access rights for the specified URI regular expression.

WebPermission(NetworkAccess, String)

Inizializza una nuova istanza della classe WebPermission con i diritti di accesso specificati per l'URI specificato.Initializes a new instance of the WebPermission class with the specified access rights for the specified URI.

WebPermission(PermissionState)

Crea una nuova istanza della classe WebPermission, che passa tutte le richieste oppure determina l'esito negativo di tutte le richieste.Creates a new instance of the WebPermission class that passes all demands or fails all demands.

Proprietà

AcceptList

Questa proprietà restituisce una enumerazione di una singola autorizzazione di accettazione contenuta da questa WebPermission.This property returns an enumeration of a single accept permissions held by this WebPermission. I tipi di oggetto possibili contenuti nell'enumerazione restituita sono String e Regex.The possible objects types contained in the returned enumeration are String and Regex.

ConnectList

Questa proprietà restituisce una enumerazione di una singola autorizzazione di connessione contenuta in questa WebPermission.This property returns an enumeration of a single connect permissions held by this WebPermission. I tipi di oggetto possibili contenuti nell'enumerazione restituita sono String e Regex.The possible objects types contained in the returned enumeration are String and Regex.

Metodi

AddPermission(NetworkAccess, Regex)

Aggiunge l'URI specificato con i diritti di accesso specificati alla WebPermission corrente.Adds the specified URI with the specified access rights to the current WebPermission.

AddPermission(NetworkAccess, String)

Aggiunge la stringa dell'URI specificato con i diritti di accesso specificati alla WebPermission corrente.Adds the specified URI string with the specified access rights to the current WebPermission.

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.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. L'uso di Assert() può creare problemi di sicurezza.Using Assert() can create security issues.

(Ereditato da CodeAccessPermission)
Copy()

Crea una copia di una classe WebPermission.Creates a copy of a WebPermission.

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

(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.Prevents callers higher in the call stack from using the code that calls this method to access the resource specified by the current instance.

(Ereditato da CodeAccessPermission)
Equals(Object)

Consente di determinare se l'oggetto CodeAccessPermission specificato è uguale all'oggetto CodeAccessPermission corrente.Determines whether the specified CodeAccessPermission object is equal to the current CodeAccessPermission.

(Ereditato da CodeAccessPermission)
FromXml(SecurityElement)

Ricostruisce una WebPermission da una codifica XML.Reconstructs a WebPermission from an XML encoding.

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.Gets a hash code for the CodeAccessPermission object that is suitable for use in hashing algorithms and data structures such as a hash table.

(Ereditato da CodeAccessPermission)
GetType()

Ottiene l'oggetto Type dell'istanza corrente.Gets the Type of the current instance.

(Ereditato da Object)
Intersect(IPermission)

Restituisce l'intersezione logica di due istanze di WebPermission.Returns the logical intersection of two WebPermission instances.

IsSubsetOf(IPermission)

Determina se la WebPermission corrente è un sottoinsieme dell'oggetto specificato.Determines whether the current WebPermission is a subset of the specified object.

IsUnrestricted()

Controlla lo stato generale dell'autorizzazione di WebPermission.Checks the overall permission state of the WebPermission.

MemberwiseClone()

Crea una copia superficiale dell'oggetto Object corrente.Creates a shallow copy of the current Object.

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

(Ereditato da CodeAccessPermission)
ToString()

Crea e restituisce una rappresentazione di stringa dell'oggetto autorizzazione corrente.Creates and returns a string representation of the current permission object.

(Ereditato da CodeAccessPermission)
ToXml()

Crea una codifica XML di una WebPermission e del relativo stato corrente.Creates an XML encoding of a WebPermission and its current state.

Union(IPermission)

Restituisce l'unione logica tra due istanze della classe WebPermission.Returns the logical union between two instances of the WebPermission class.

Implementazioni dell'interfaccia esplicita

IPermission.Demand()

Genera un'eccezione SecurityException in fase di esecuzione se non viene soddisfatto il requisito di sicurezza.Throws a SecurityException at run time if the security requirement is not met.

(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.Asserts that the calling code can access the resource identified by the current permission object, even if callers higher in the stack have not been granted permission to access the resource.

(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.Determines at run time whether all callers in the call stack have been granted the permission specified by the current permission object.

(Ereditato da CodeAccessPermission)
IStackWalk.Deny()

Causa l'esito negativo di ogni oggetto Demand() per l'oggetto corrente che passa attraverso il codice chiamante.Causes every Demand() for the current object that passes through the calling code to fail.

(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.Causes every Demand() for all objects except the current one that pass through the calling code to fail, even if code higher in the call stack has been granted permission to access other resources.

(Ereditato da CodeAccessPermission)

Si applica a

Vedi anche