WebPermission WebPermission WebPermission WebPermission Class

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. Hosts adicionales se agregan a la conexión y aceptar la lista de WebPermission.Additional hosts are added to the connect and accept list of WebPermission. Por último, la conexión y aceptar la lista se muestran 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 recursos de Internet.WebPermission provides a set of methods and properties to control access to Internet resources. Puede usar un WebPermission proporcionar acceso restringido o sin restricción a su recurso, basándose en la PermissionState que se establece cuando el WebPermission se crea.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.

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

El ConnectList y AcceptList contienen los identificadores URI a los que hayan 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 se pasa Accept como el NetworkAccess parámetro, el URI se agregará a la AcceptList.If you pass Accept as the NetworkAccess parameter, the URI will be added to the AcceptList. WebPermission va a permitir conexiones a la clase de destino con los URI de coincidencia del 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 posibles rutas de acceso a ese recurso.To deny access to an Internet resource, you must deny access to all the possible paths to that resource. Esto requiere que realiza la llamada 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 es permitir el acceso a solo el recurso específico.A better approach is to allow access to the specific resource only. Para obtener más información acerca de este tema, consulte el NIB: Utilizar el método Deny tema.For more information about this subject, refer to the NIB: Using the Deny Method topic.

Nota

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

Nota

Información de puerto predeterminada y el nombre de usuario se elimina de la Uri antes de la comparación con el argumento de expresión regular que se proporciona a los WebPermission(NetworkAccess, Regex) constructor.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 entrantes Uris se producirá un error para que coincida 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() WebPermission() WebPermission() WebPermission()

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

WebPermission(NetworkAccess, Regex) WebPermission(NetworkAccess, Regex) WebPermission(NetworkAccess, Regex) 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) WebPermission(NetworkAccess, String) WebPermission(NetworkAccess, String) 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) WebPermission(PermissionState) WebPermission(PermissionState) 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 AcceptList AcceptList 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 ConnectList ConnectList 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) AddPermission(NetworkAccess, Regex) AddPermission(NetworkAccess, Regex) 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) AddPermission(NetworkAccess, String) AddPermission(NetworkAccess, String) 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() Assert() Assert() 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.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

(Inherited from CodeAccessPermission)
ToXml() ToXml() ToXml() 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) Union(IPermission) Union(IPermission) 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() 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

Se aplica a

Consulte también: