WebPermission Classe

Définition

Attention

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

Contrôle les droits d'accès à des ressources Internet HTTP.

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 d’utilisation d’un WebPermission Regex. Des hôtes supplémentaires sont ajoutés à la liste de connexions et d’acceptation .WebPermission Enfin, la liste de connexion et d’acceptation s’affiche dans la 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. Vous pouvez utiliser une option pour fournir un WebPermission accès restreint ou illimité à votre ressource, en fonction de ce PermissionState qui est défini lors de la WebPermission création.

Créez une WebPermission instance en appelant son constructeur à l’aide de l’un des ensembles de paramètres suivants :

AcceptList les ConnectList URI auxquels vous avez accordé l’autorisation d’accès. Pour ajouter un URI à l’une de ces listes, utilisez AddPermission. Si vous passez Accept en NetworkAccess tant que paramètre, l’URI sera ajouté au AcceptList. WebPermission autorisera les connexions à votre classe cible avec des URI correspondant au 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. Cela nécessite l’appel WebPermission.WebPermission avec le paramètre d’état défini sur Deny. Une meilleure approche consiste à autoriser l’accès à la ressource spécifique uniquement. Pour plus d’informations sur ce sujet, reportez-vous à la rubrique Using the Deny Method .

Notes

Vous devez refuser l’accès en utilisant uniquement le chemin canonique de la ressource. Il n’est pas nécessaire d’utiliser toutes les variantes syntacticales du chemin.

Notes

Le nom d’utilisateur et les informations de port par défaut sont supprimés de la Uri comparaison avec l’argument d’expression régulière fourni au WebPermission(NetworkAccess, Regex) constructeur. Si l’expression régulière contient des informations utilisateur ou le numéro de port par défaut, tous les entrants Urine correspondent pas à l’expression régulière.

Constructeurs

WebPermission()

Crée une instance de la classe WebPermission.

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.

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é.

WebPermission(PermissionState)

Crée une nouvelle instance de la classe WebPermission qui fait aboutir ou échouer toutes les demandes.

Propriétés

AcceptList

Cette propriété retourne une énumération d'une autorisation d'acceptation unique détenue par WebPermission. Les types d'objets pouvant être contenus dans l'énumération retournée sont String et Regex.

ConnectList

Cette propriété retourne une énumération d'une autorisation de connexion unique détenue par WebPermission. Les types d'objets pouvant être contenus dans l'énumération retournée sont String et Regex.

Méthodes

AddPermission(NetworkAccess, Regex)

Ajoute l'URI spécifié avec les droits d'accès spécifiés au WebPermission en cours.

AddPermission(NetworkAccess, String)

Ajoute la chaîne d'URI spécifiée avec les droits d'accès spécifiés au WebPermission actuel.

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. L’utilisation de Assert() peut créer des problèmes de sécurité.

(Hérité de CodeAccessPermission)
Copy()

Crée une copie de 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.

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

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

Détermine si l'objet CodeAccessPermission spécifié est égal à CodeAccessPermission en cours.

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

Reconstruit WebPermission à partir d'un encodage XML.

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.

(Hérité de CodeAccessPermission)
GetType()

Obtient le Type de l'instance actuelle.

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

Retourne l'intersection logique de deux instances de WebPermission.

IsSubsetOf(IPermission)

Détermine si le WebPermission actuel est un sous-ensemble de l'objet spécifié.

IsUnrestricted()

Vérifie l'état d'autorisation global de WebPermission.

MemberwiseClone()

Crée une copie superficielle du Object actuel.

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

(Hérité de CodeAccessPermission)
ToString()

Crée et retourne une chaîne représentant l’objet d’autorisation actuel.

(Hérité de CodeAccessPermission)
ToXml()

Crée un encodage XML d'un WebPermission et son état actuel.

Union(IPermission)

Retourne l'union logique entre deux instances de la classe WebPermission.

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.

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

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

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

Provoque l’échec de chaque Demand() pour l’objet actuel qui passe par le code appelant.

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

(Hérité de CodeAccessPermission)

S’applique à

Voir aussi