WebPermission WebPermission WebPermission WebPermission Class

Definizione

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

Esempi

Nell'esempio seguente viene illustrato come creare una nuova istanza di WebPermission utilizzando un Regexoggetto.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

WebPermissionfornisce 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 WebPermission oggetto per fornire accesso limitato o illimitato alla risorsa, in base all'oggetto PermissionState impostato al momento della WebPermission creazione di.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:

ConnectList EAcceptList 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 NetworkAccess come parametro, l'URI AcceptListverrà aggiunto a.If you pass Accept as the NetworkAccess parameter, the URI will be added to the AcceptList. WebPermissionconsentirà le connessioni alla classe di destinazione con gli AcceptListURI che corrispondono a.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 WebPermission.WebPermission la chiamata a con il Denyparametro di stato impostato su.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, fare riferimento al pennino: Utilizzo dell'argomento Deny Method.For more information about this subject, refer to the NIB: 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 Uri da prima del confronto con l'argomento dell'espressione regolare fornito WebPermission(NetworkAccess, Regex) al 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 Uridati in ingresso 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() WebPermission() WebPermission() WebPermission()

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

WebPermission(NetworkAccess, Regex) WebPermission(NetworkAccess, Regex) WebPermission(NetworkAccess, Regex) 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) WebPermission(NetworkAccess, String) WebPermission(NetworkAccess, String) 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) WebPermission(PermissionState) WebPermission(PermissionState) 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 AcceptList AcceptList 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 ConnectList ConnectList 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) AddPermission(NetworkAccess, Regex) AddPermission(NetworkAccess, Regex) 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) AddPermission(NetworkAccess, String) AddPermission(NetworkAccess, String) 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() Assert() Assert() 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. Se si utilizza Assert() è possibile creare problemi di sicurezza.Using Assert() can create security issues.

(Inherited from CodeAccessPermission)
Copy() Copy() Copy() Copy()

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

Demand() Demand() Demand() Demand()

Forza una SecurityException in fase di esecuzione se ai chiamanti nella parte superiore dello stack di chiamate non sono concesse le autorizzazioni specificate 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.

(Inherited from CodeAccessPermission)
Deny() Deny() Deny() Deny()

Impedisce ai chiamanti in posizione più elevata nello stack di chiamate di utilizzare 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.

(Inherited from CodeAccessPermission)
Equals(Object) Equals(Object) Equals(Object) 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.

(Inherited from CodeAccessPermission)
FromXml(SecurityElement) FromXml(SecurityElement) FromXml(SecurityElement) FromXml(SecurityElement)

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

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

(Inherited from CodeAccessPermission)
GetType() GetType() GetType() GetType()

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

(Inherited from Object)
Intersect(IPermission) Intersect(IPermission) Intersect(IPermission) Intersect(IPermission)

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

IsSubsetOf(IPermission) IsSubsetOf(IPermission) IsSubsetOf(IPermission) 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() IsUnrestricted() IsUnrestricted() IsUnrestricted()

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

MemberwiseClone() MemberwiseClone() MemberwiseClone() MemberwiseClone()

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

(Inherited from Object)
PermitOnly() PermitOnly() PermitOnly() PermitOnly()

Impedisce ai chiamanti in posizione più elevata nello stack di chiamate di utilizzare il codice che chiama questo metodo per accedere a tutte le risorse ad eccezione della risorsa 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.

(Inherited from CodeAccessPermission)
ToString() ToString() ToString() ToString()

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

(Inherited from CodeAccessPermission)
ToXml() ToXml() ToXml() 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) Union(IPermission) Union(IPermission) 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() IPermission.Demand() IPermission.Demand() IPermission.Demand() Inherited from CodeAccessPermission
IStackWalk.Assert() IStackWalk.Assert() IStackWalk.Assert() IStackWalk.Assert() Inherited from CodeAccessPermission
IStackWalk.Demand() IStackWalk.Demand() IStackWalk.Demand() IStackWalk.Demand() Inherited from CodeAccessPermission
IStackWalk.Deny() IStackWalk.Deny() IStackWalk.Deny() IStackWalk.Deny() Inherited from CodeAccessPermission
IStackWalk.PermitOnly() IStackWalk.PermitOnly() IStackWalk.PermitOnly() IStackWalk.PermitOnly() Inherited from CodeAccessPermission

Si applica a

Vedi anche