WebPermission Clase

Definición

Precaución

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

Controla los derechos de acceso a los recursos HTTP de Internet.

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
Herencia
Atributos
Implementaciones

Ejemplos

En el ejemplo siguiente se muestra cómo crear una nueva instancia de WebPermission mediante .Regex Se agregan hosts adicionales a la lista de conexiones y aceptación de WebPermission. Por último, la lista de conexión y aceptación se muestran en la consola.

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

Precaución

La seguridad de acceso del código (CAS) ha quedado en desuso en todas las versiones de .NET Framework y .NET. Las versiones recientes de .NET no respetan las anotaciones de CAS y generan errores si se usan API relacionadas con CAS. Los desarrolladores deben buscar medios alternativos para realizar tareas de seguridad.

WebPermission proporciona un conjunto de métodos y propiedades para controlar el acceso a los recursos de Internet. Puede usar WebPermission para proporcionar acceso restringido o sin restricciones al recurso, en función del PermissionState que se establece cuando se crea .WebPermission

Cree una instancia mediante una WebPermission llamada a su constructor mediante uno de los siguientes conjuntos de parámetros:

y ConnectListAcceptList contienen los URI a los que ha concedido permiso de acceso. Para agregar un URI a cualquiera de estas listas, use AddPermission. Si pasa Accept como NetworkAccess parámetro , el URI se agregará a AcceptList. WebPermission permitirá conexiones a la clase de destino con URI que coincidan AcceptListcon .

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. Esto requiere llamar a WebPermission.WebPermission con el parámetro de estado establecido en Deny. Un mejor enfoque es permitir el acceso solo al recurso específico. Para obtener más información sobre este tema, consulte el tema Uso del método Deny .

Nota

Debe denegar el acceso mediante solo la ruta de acceso canónica del recurso. No es necesario usar todas las variaciones sintácticas de la ruta de acceso.

Nota

El nombre de usuario y la Uri información de puerto predeterminada se quitan de antes de la comparación con el argumento de expresión regular que se proporciona al WebPermission(NetworkAccess, Regex) constructor. Si la expresión regular contiene información del usuario o el número de puerto predeterminado, todos los valores entrantes Urino coincidirán con la expresión regular.

Constructores

WebPermission()
Obsoletos.

Crea una nueva instancia de la clase WebPermission.

WebPermission(NetworkAccess, Regex)
Obsoletos.

Inicializa una nueva instancia de la clase WebPermission con los derechos de acceso especificados para la expresión regular URI indicada.

WebPermission(NetworkAccess, String)
Obsoletos.

Inicializa una nueva instancia de la clase WebPermission con los derechos de acceso especificados para el URI indicado.

WebPermission(PermissionState)
Obsoletos.

Crea una nueva instancia de la clase WebPermission que aprueba todas las solicitudes o las desaprueba.

Propiedades

AcceptList
Obsoletos.

Esta propiedad devuelve una enumeración de los permisos de aceptación única que ostenta este WebPermission. Los tipos de objeto posibles que contiene la enumeración que se devuelve son String y Regex.

ConnectList
Obsoletos.

Esta propiedad devuelve una enumeración de los permisos de conexión única que ostenta este WebPermission. Los tipos de objeto posibles que contiene la enumeración que se devuelve son String y Regex.

Métodos

AddPermission(NetworkAccess, Regex)
Obsoletos.

Agrega el URI especificado con los derechos de acceso indicados al WebPermission actual.

AddPermission(NetworkAccess, String)
Obsoletos.

Agrega la cadena URI especificada con los derechos de acceso indicados al WebPermission actual.

Assert()
Obsoletos.

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. El uso de Assert() puede crear problemas de seguridad.

(Heredado de CodeAccessPermission)
Copy()
Obsoletos.

Crea una copia de un objeto WebPermission.

Demand()
Obsoletos.

Fuerza a un SecurityException en tiempo de ejecución si todos los autores de llamada situados en la parte superior de la pila de llamadas no disponen del permiso especificado por la instancia actual.

(Heredado de CodeAccessPermission)
Deny()
Obsoletos.
Obsoletos.

Impide que los autores de la llamada situados en la posición más alta de la pila de llamadas usen el código que llama a este método para tener acceso al recurso especificado por la instancia actual.

(Heredado de CodeAccessPermission)
Equals(Object)
Obsoletos.

Determina si el objeto CodeAccessPermission especificado es igual al objeto CodeAccessPermission actual.

(Heredado de CodeAccessPermission)
FromXml(SecurityElement)
Obsoletos.

Reconstruye un WebPermission a partir de codificación XML.

GetHashCode()
Obsoletos.

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.

(Heredado de CodeAccessPermission)
GetType()
Obsoletos.

Obtiene el Type de la instancia actual.

(Heredado de Object)
Intersect(IPermission)
Obsoletos.

Devuelve la intersección lógica entre dos instancias de WebPermission.

IsSubsetOf(IPermission)
Obsoletos.

Determina si el WebPermission actual es un subconjunto del objeto especificado.

IsUnrestricted()
Obsoletos.

Comprueba el estado de permiso global del WebPermission.

MemberwiseClone()
Obsoletos.

Crea una copia superficial del Object actual.

(Heredado de Object)
PermitOnly()
Obsoletos.

Impide que los llamadores situados más arriba en la pila de llamadas usen el código que llama a este método para tener acceso a todos los recursos excepto al recurso especificado por la instancia actual.

(Heredado de CodeAccessPermission)
ToString()
Obsoletos.

Crea y devuelve una representación de cadena del objeto de permiso actual.

(Heredado de CodeAccessPermission)
ToXml()
Obsoletos.

Crea una codificación XML de un WebPermission y su estado actual.

Union(IPermission)
Obsoletos.

Devuelve la unión lógica entre dos instancias de la clase WebPermission.

Se aplica a

Consulte también