WebPermission Clase
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
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
[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
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}")>]
type WebPermission = class
inherit CodeAccessPermission
interface IUnrestrictedPermission
[<System.Serializable>]
type WebPermission = class
inherit CodeAccessPermission
interface 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 .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:
No hay parámetros. El valor predeterminado de PermissionState es None.
Objeto PermissionState. Unrestricted Especifique para permitir que cualquier URI se use en la clase de destino o None para permitir el acceso solo a los URI que especifique mediante el uso del AddPermission método .
Valor NetworkAccess y cadena de URI. El URI especificado tiene permisos concedidos por el NetworkAccess valor .
Un especificador y una NetworkAccess expresión regular de URI.
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. |