WebPermission Classe

Définition

Attention

Code Access Security is not supported or honored by the runtime.", DiagnosticId="SYSLIB0003", UrlFormat="https://aka.ms/dotnet-warnings/{0}

Contrôle les droits d'accès à des ressources Internet HTTP.Controls rights to access HTTP Internet resources.

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
Héritage
Attributs
Implémente

Exemples

L’exemple suivant montre comment créer une nouvelle instance de WebPermission à l’aide d’un Regex .The following example demonstrates how to create a new instance of WebPermission using a Regex. D’autres ordinateurs hôtes sont ajoutés à la liste se connecter et accepter de WebPermission .Additional hosts are added to the connect and accept list of WebPermission. Enfin, la liste se connecter et accepter s’affiche sur la 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

Remarques

WebPermission fournit un ensemble de méthodes et de propriétés pour contrôler l’accès aux ressources Internet.WebPermission provides a set of methods and properties to control access to Internet resources. Vous pouvez utiliser un WebPermission pour fournir un accès limité ou non restreint à votre ressource, en fonction du PermissionState défini lors de la WebPermission création de.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.

Créez une WebPermission instance en appelant son constructeur à l’aide de l’un des jeux de paramètres suivants :Create a WebPermission instance by calling its constructor using one of the following sets of parameters:

ConnectListEt AcceptList contiennent les URI auxquels vous avez accordé l’autorisation d’accès.The ConnectList and AcceptList hold the URIs to which you have granted access permission. Pour ajouter un URI à l’une de ces listes, utilisez AddPermission .To add a URI to either of these lists, use AddPermission. Si vous transmettez Accept comme NetworkAccess paramètre, l’URI sera ajouté à AcceptList .If you pass Accept as the NetworkAccess parameter, the URI will be added to the AcceptList. WebPermission autorisera les connexions à votre classe cible avec des URI correspondant à AcceptList .WebPermission will allow connections to your target class with URIs matching the AcceptList.

Attention

Pour refuser l’accès à une ressource Internet, vous devez refuser l’accès à tous les chemins d’accès possibles à cette ressource.To deny access to an Internet resource, you must deny access to all the possible paths to that resource. WebPermission.WebPermissionPour cela, vous devez appeler avec le paramètre d’état défini sur Deny .This requires calling WebPermission.WebPermission with state parameter set to Deny. Une meilleure approche consiste à autoriser l’accès à la ressource spécifique uniquement.A better approach is to allow access to the specific resource only. Pour plus d’informations sur ce sujet, reportez-vous à la rubrique utilisation de la méthode Deny .For more information about this subject, refer to the Using the Deny Method topic.

Notes

Vous devez refuser l’accès en utilisant uniquement le chemin d’accès canonique à la ressource.You need to deny access using only the resource canonical path. Il n’est pas nécessaire d’utiliser toutes les variations syntaxiques du chemin d’accès.There is no need to use all the path's syntactical variations.

Notes

Les informations de nom d’utilisateur et de port par défaut sont supprimées de Uri avant la comparaison avec l’argument d’expression régulière fourni au WebPermission(NetworkAccess, Regex) constructeur.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 l’expression régulière contient des informations sur l’utilisateur ou le numéro de port par défaut, tous les s entrantes Uri ne correspondent pas à l’expression régulière.If the regular expression contains user information or the default port number, then all incoming Uris will fail to match the regular expression.

Constructeurs

WebPermission()

Crée une instance de la classe WebPermission.Creates a new instance of the WebPermission class.

WebPermission(NetworkAccess, Regex)

Initialise une nouvelle instance de la classe WebPermission avec les droits d'accès spécifiés pour l'expression régulière d'URI spécifiée.Initializes a new instance of the WebPermission class with the specified access rights for the specified URI regular expression.

WebPermission(NetworkAccess, String)

Initialise une nouvelle instance de la classe WebPermission avec les droits d'accès spécifiés pour l'URI spécifié.Initializes a new instance of the WebPermission class with the specified access rights for the specified URI.

WebPermission(PermissionState)

Crée une nouvelle instance de la classe WebPermission qui fait aboutir ou échouer toutes les demandes.Creates a new instance of the WebPermission class that passes all demands or fails all demands.

Propriétés

AcceptList

Cette propriété retourne une énumération d'une autorisation d'acceptation unique détenue par WebPermission.This property returns an enumeration of a single accept permissions held by this WebPermission. Les types d'objets pouvant être contenus dans l'énumération retournée sont String et Regex.The possible objects types contained in the returned enumeration are String and Regex.

ConnectList

Cette propriété retourne une énumération d'une autorisation de connexion unique détenue par WebPermission.This property returns an enumeration of a single connect permissions held by this WebPermission. Les types d'objets pouvant être contenus dans l'énumération retournée sont String et Regex.The possible objects types contained in the returned enumeration are String and Regex.

Méthodes

AddPermission(NetworkAccess, Regex)

Ajoute l'URI spécifié avec les droits d'accès spécifiés au WebPermission en cours.Adds the specified URI with the specified access rights to the current WebPermission.

AddPermission(NetworkAccess, String)

Ajoute la chaîne d'URI spécifiée avec les droits d'accès spécifiés au WebPermission actuel.Adds the specified URI string with the specified access rights to the current WebPermission.

Assert()

Déclare que le code appelant peut accéder à la ressource protégée par une demande d’autorisation via le code qui appelle cette méthode, même si les appelants situés plus haut dans la pile n’ont pas reçu l’autorisation d’accéder à la ressource.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. L’utilisation de Assert() peut créer des problèmes de sécurité.Using Assert() can create security issues.

(Hérité de CodeAccessPermission)
Copy()

Crée une copie de WebPermission.Creates a copy of a WebPermission.

Demand()

Force un SecurityException au moment de l’exécution si tous les appelants figurant plus haut dans la pile des appels ne disposent pas des autorisations spécifiées par l’instance actuelle.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.

(Hérité de CodeAccessPermission)
Deny()
Obsolète.
Obsolète.

Empêche les appelants plus hauts dans la pile des appels d’utiliser le code qui appelle cette méthode pour accéder à la ressource spécifiée par l’instance actuelle.Prevents callers higher in the call stack from using the code that calls this method to access the resource specified by the current instance.

(Hérité de CodeAccessPermission)
Equals(Object)

Détermine si l'objet CodeAccessPermission spécifié est égal à CodeAccessPermission en cours.Determines whether the specified CodeAccessPermission object is equal to the current CodeAccessPermission.

(Hérité de CodeAccessPermission)
FromXml(SecurityElement)

Reconstruit WebPermission à partir d'un encodage XML.Reconstructs a WebPermission from an XML encoding.

GetHashCode()

Obtient un code de hachage pour l’objet CodeAccessPermission qui peut être utilisé dans des structures de données et des algorithmes de hachage, comme une table de hachage.Gets a hash code for the CodeAccessPermission object that is suitable for use in hashing algorithms and data structures such as a hash table.

(Hérité de CodeAccessPermission)
GetType()

Obtient le Type de l'instance actuelle.Gets the Type of the current instance.

(Hérité de Object)
Intersect(IPermission)

Retourne l'intersection logique de deux instances de WebPermission.Returns the logical intersection of two WebPermission instances.

IsSubsetOf(IPermission)

Détermine si le WebPermission actuel est un sous-ensemble de l'objet spécifié.Determines whether the current WebPermission is a subset of the specified object.

IsUnrestricted()

Vérifie l'état d'autorisation global de WebPermission.Checks the overall permission state of the WebPermission.

MemberwiseClone()

Crée une copie superficielle du Object actuel.Creates a shallow copy of the current Object.

(Hérité de Object)
PermitOnly()

Empêche les appelants plus hauts dans la pile des appels d’utiliser le code qui appelle cette méthode pour accéder à toutes les ressources à l’exception de la ressource spécifiée par l’instance actuelle.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.

(Hérité de CodeAccessPermission)
ToString()

Crée et retourne une chaîne représentant l’objet d’autorisation actuel.Creates and returns a string representation of the current permission object.

(Hérité de CodeAccessPermission)
ToXml()

Crée un encodage XML d'un WebPermission et son état actuel.Creates an XML encoding of a WebPermission and its current state.

Union(IPermission)

Retourne l'union logique entre deux instances de la classe WebPermission.Returns the logical union between two instances of the WebPermission class.

Implémentations d’interfaces explicites

IPermission.Demand()

Lève une SecurityException au moment de l'exécution si les conditions de sécurité ne sont pas réunies.Throws a SecurityException at run time if the security requirement is not met.

(Hérité de CodeAccessPermission)
IStackWalk.Assert()

Déclare que le code appelant peut accéder à la ressource identifiée par l’objet d’autorisation actuel, même si les appelants situés plus haut dans la pile n’ont pas reçu l’autorisation d’accéder à la ressource.Asserts that the calling code can access the resource identified by the current permission object, even if callers higher in the stack have not been granted permission to access the resource.

(Hérité de CodeAccessPermission)
IStackWalk.Demand()

Détermine au moment de l’exécution si tous les appelants dans la pile des appels ont reçu l’autorisation spécifiée par l’objet d’autorisation actuel.Determines at run time whether all callers in the call stack have been granted the permission specified by the current permission object.

(Hérité de CodeAccessPermission)
IStackWalk.Deny()

Provoque l’échec de chaque Demand() pour l’objet actuel qui passe par le code appelant.Causes every Demand() for the current object that passes through the calling code to fail.

(Hérité de CodeAccessPermission)
IStackWalk.PermitOnly()

Entraîne l’échec de chaque Demand() pour tous les objets à l’exception de l’objet actuel qui passe via le code appelant, même si le code plus haut dans la pile des appels a reçu l’autorisation d’accéder aux autres ressources.Causes every Demand() for all objects except the current one that pass through the calling code to fail, even if code higher in the call stack has been granted permission to access other resources.

(Hérité de CodeAccessPermission)

S’applique à

Voir aussi