WebPermission Clase

Definición

Controla los derechos de acceso a los recursos HTTP de Internet.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
Herencia
Atributos
Implementaciones

Ejemplos

En el ejemplo siguiente se muestra cómo crear una nueva instancia de WebPermission mediante un Regex.The following example demonstrates how to create a new instance of WebPermission using a Regex. Los hosts adicionales se agregan a la lista de conexión y aceptación de WebPermission.Additional hosts are added to the connect and accept list of WebPermission. Por último, se muestra la lista de conexión y aceptación en la consola.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

Comentarios

WebPermission proporciona un conjunto de métodos y propiedades para controlar el acceso a los recursos de Internet.WebPermission provides a set of methods and properties to control access to Internet resources. Puede usar un WebPermission para proporcionar acceso restringido o no restringido al recurso, en función del PermissionState que se establece cuando se crea el 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.

Cree una instancia de WebPermission llamando a su constructor mediante uno de los siguientes conjuntos de parámetros:Create a WebPermission instance by calling its constructor using one of the following sets of parameters:

Los ConnectList y AcceptList contienen los URI a los que ha concedido el permiso de acceso.The ConnectList and AcceptList hold the URIs to which you have granted access permission. Para agregar un URI a cualquiera de estas listas, use AddPermission.To add a URI to either of these lists, use AddPermission. Si pasa Accept como parámetro NetworkAccess, el URI se agregará al AcceptList.If you pass Accept as the NetworkAccess parameter, the URI will be added to the AcceptList. WebPermission permitirá las conexiones a la clase de destino con URI que coincidan con la AcceptList.WebPermission will allow connections to your target class with URIs matching the AcceptList.

Precaución

Para denegar el acceso a un recurso de Internet, debe denegar el acceso a todas las rutas de acceso posibles a ese recurso.To deny access to an Internet resource, you must deny access to all the possible paths to that resource. Esto requiere llamar a WebPermission.WebPermission con el parámetro de estado establecido en Deny.This requires calling WebPermission.WebPermission with state parameter set to Deny. Un mejor enfoque consiste en permitir el acceso solo al recurso específico.A better approach is to allow access to the specific resource only. Para obtener más información sobre este tema, consulte el tema usar el método deny .For more information about this subject, refer to the Using the Deny Method topic.

Nota

Debe denegar el acceso usando solo la ruta canónica del recurso.You need to deny access using only the resource canonical path. No es necesario usar todas las variaciones sintácticas de la ruta de acceso.There is no need to use all the path's syntactical variations.

Nota

La información del nombre de usuario y el puerto predeterminado se elimina del Uri antes de la comparación con el argumento de expresión regular que se proporciona al constructor de WebPermission(NetworkAccess, Regex).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. Si la expresión regular contiene información de usuario o el número de puerto predeterminado, todos los Uride entrada no coincidirán con la expresión regular.If the regular expression contains user information or the default port number, then all incoming Uris will fail to match the regular expression.

Constructores

WebPermission()

Crea una nueva instancia de la clase WebPermission.Creates a new instance of the WebPermission class.

WebPermission(NetworkAccess, Regex)

Inicializa una nueva instancia de la clase WebPermission con los derechos de acceso especificados para la expresión regular URI indicada.Initializes a new instance of the WebPermission class with the specified access rights for the specified URI regular expression.

WebPermission(NetworkAccess, String)

Inicializa una nueva instancia de la clase WebPermission con los derechos de acceso especificados para el URI indicado.Initializes a new instance of the WebPermission class with the specified access rights for the specified URI.

WebPermission(PermissionState)

Crea una nueva instancia de la clase WebPermission que aprueba todas las solicitudes o las desaprueba.Creates a new instance of the WebPermission class that passes all demands or fails all demands.

Propiedades

AcceptList

Esta propiedad devuelve una enumeración de los permisos de aceptación única que ostenta este WebPermission.This property returns an enumeration of a single accept permissions held by this WebPermission. Los tipos de objeto posibles que contiene la enumeración que se devuelve son String y Regex.The possible objects types contained in the returned enumeration are String and Regex.

ConnectList

Esta propiedad devuelve una enumeración de los permisos de conexión única que ostenta este WebPermission.This property returns an enumeration of a single connect permissions held by this WebPermission. Los tipos de objeto posibles que contiene la enumeración que se devuelve son String y Regex.The possible objects types contained in the returned enumeration are String and Regex.

Métodos

AddPermission(NetworkAccess, Regex)

Agrega el URI especificado con los derechos de acceso indicados al WebPermission actual.Adds the specified URI with the specified access rights to the current WebPermission.

AddPermission(NetworkAccess, String)

Agrega la cadena URI especificada con los derechos de acceso indicados al WebPermission actual.Adds the specified URI string with the specified access rights to the current WebPermission.

Assert()

Declara que el código de llamada puede tener acceso al recurso protegido por una demanda de permiso a través del código que llama a este método, incluso si los autores de la llamada situados en una posición más alta de la pila no tienen permiso para tener acceso al recurso.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. El uso de Assert() puede crear problemas de seguridad.Using Assert() can create security issues.

(Heredado de CodeAccessPermission)
Copy()

Crea una copia de un objeto WebPermission.Creates a copy of a WebPermission.

Demand()

Fuerza SecurityException en tiempo de ejecución si todos los llamadores situados en la pila de llamadas no disponen del permiso especificado por la instancia actual.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.

(Heredado de CodeAccessPermission)
Deny()

Evita que los llamadores situados en la parte superior de la pila de llamadas utilicen el código que llama a este método para obtener acceso al recurso especificado por la instancia actual.Prevents callers higher in the call stack from using the code that calls this method to access the resource specified by the current instance.

(Heredado de CodeAccessPermission)
Equals(Object)

Determina si el objeto CodeAccessPermission especificado es igual al objeto CodeAccessPermission actual.Determines whether the specified CodeAccessPermission object is equal to the current CodeAccessPermission.

(Heredado de CodeAccessPermission)
FromXml(SecurityElement)

Reconstruye un WebPermission a partir de codificación XML.Reconstructs a WebPermission from an XML encoding.

GetHashCode()

Obtiene un código hash para el objeto CodeAccessPermission que es adecuado para su uso en algoritmos hash y estructuras de datos como una tabla 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.

(Heredado de CodeAccessPermission)
GetType()

Obtiene el Type de la instancia actual.Gets the Type of the current instance.

(Heredado de Object)
Intersect(IPermission)

Devuelve la intersección lógica entre dos instancias de WebPermission.Returns the logical intersection of two WebPermission instances.

IsSubsetOf(IPermission)

Determina si el WebPermission actual es un subconjunto del objeto especificado.Determines whether the current WebPermission is a subset of the specified object.

IsUnrestricted()

Comprueba el estado de permiso global del WebPermission.Checks the overall permission state of the WebPermission.

MemberwiseClone()

Crea una copia superficial del Object actual.Creates a shallow copy of the current Object.

(Heredado de Object)
PermitOnly()

Evita que los llamadores situados en la parte superior de la pila de llamadas utilicen el código que llama a este método para obtener acceso a todos los recursos con la excepción del recurso especificado por la instancia actual.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.

(Heredado de CodeAccessPermission)
ToString()

Crea y devuelve una cadena que representa el objeto de permiso actual.Creates and returns a string representation of the current permission object.

(Heredado de CodeAccessPermission)
ToXml()

Crea una codificación XML de un WebPermission y su estado actual.Creates an XML encoding of a WebPermission and its current state.

Union(IPermission)

Devuelve la unión lógica entre dos instancias de la clase WebPermission.Returns the logical union between two instances of the WebPermission class.

Implementaciones de interfaz explícitas

IPermission.Demand() (Heredado de CodeAccessPermission)
IStackWalk.Assert() (Heredado de CodeAccessPermission)
IStackWalk.Demand() (Heredado de CodeAccessPermission)
IStackWalk.Deny() (Heredado de CodeAccessPermission)
IStackWalk.PermitOnly() (Heredado de CodeAccessPermission)

Se aplica a

Consulte también: