WebPermission Klasse

Definition

Steuert die Zugriffsrechte für den Zugriff auf HTTP-Internetressourcen.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
Vererbung
Attribute
Implementiert

Beispiele

Im folgenden Beispiel wird veranschaulicht, wie eine neue Instanz von WebPermission mithilfe eines-Regexerstellt wird.The following example demonstrates how to create a new instance of WebPermission using a Regex. Der Connect-und Accept-Liste von WebPermissionwerden weitere Hosts hinzugefügt.Additional hosts are added to the connect and accept list of WebPermission. Zum Schluss werden die Connect-und die Accept-Liste in der Konsole angezeigt.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

Hinweise

WebPermission stellt eine Reihe von Methoden und Eigenschaften bereit, um den Zugriff auf Internet Ressourcen zu steuern.WebPermission provides a set of methods and properties to control access to Internet resources. Sie können eine WebPermission verwenden, um den eingeschränkten oder uneingeschränkten Zugriff auf Ihre Ressource basierend auf der PermissionState bereitzustellen, die beim Erstellen der WebPermission festgelegt wird.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.

Erstellen Sie eine WebPermission-Instanz, indem Sie Ihren Konstruktor mit einem der folgenden Parametersätze aufrufen:Create a WebPermission instance by calling its constructor using one of the following sets of parameters:

Der ConnectList und AcceptList die URIs enthalten, denen Sie die Zugriffsberechtigung erteilt haben.The ConnectList and AcceptList hold the URIs to which you have granted access permission. Wenn Sie einer dieser Listen einen URI hinzufügen möchten, verwenden Sie AddPermission.To add a URI to either of these lists, use AddPermission. Wenn Sie Accept als NetworkAccess Parameter übergeben, wird der URI dem AcceptListhinzugefügt.If you pass Accept as the NetworkAccess parameter, the URI will be added to the AcceptList. WebPermission ermöglicht Verbindungen mit der Zielklasse mit URIs, die mit der AcceptListübereinstimmen.WebPermission will allow connections to your target class with URIs matching the AcceptList.

Achtung

Wenn Sie den Zugriff auf eine Internet Ressource verweigern möchten, müssen Sie den Zugriff auf alle möglichen Pfade zu dieser Ressource verweigern.To deny access to an Internet resource, you must deny access to all the possible paths to that resource. Hierfür ist das Aufrufen von WebPermission.WebPermission mit dem State-Parameter erforderlich, der auf DenyThis requires calling WebPermission.WebPermission with state parameter set to Deny. Ein besserer Ansatz besteht darin, nur den Zugriff auf die jeweilige Ressource zuzulassen.A better approach is to allow access to the specific resource only. Weitere Informationen zu diesem Betreff finden Sie im Thema Verwenden der Deny-Methode .For more information about this subject, refer to the Using the Deny Method topic.

Hinweis

Sie müssen den Zugriff nur mit dem kanonischen Ressourcenpfad verweigern.You need to deny access using only the resource canonical path. Es ist nicht erforderlich, alle syntaktischen Variationen des Pfads zu verwenden.There is no need to use all the path's syntactical variations.

Hinweis

Der Benutzername und die standardportinformationen werden vor dem Vergleich mit dem Argument für reguläre Ausdrücke, das für den WebPermission(NetworkAccess, Regex)-Konstruktor bereitgestellt wird, aus der Uri entfernt.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. Wenn der reguläre Ausdruck Benutzerinformationen oder die Standard Portnummer enthält, können alle eingehenden Uris nicht mit dem regulären Ausdruck verglichen werden.If the regular expression contains user information or the default port number, then all incoming Uris will fail to match the regular expression.

Konstruktoren

WebPermission()

Erstellt eine neue Instanz der WebPermission-Klasse.Creates a new instance of the WebPermission class.

WebPermission(NetworkAccess, Regex)

Initialisiert eine neue Instanz der WebPermission-Klasse mit den angegebenen Zugriffsrechten für den angegebenen regulären URI-Ausdruck.Initializes a new instance of the WebPermission class with the specified access rights for the specified URI regular expression.

WebPermission(NetworkAccess, String)

Initialisiert eine neue Instanz der WebPermission-Klasse mit den angegebenen Zugriffsrechten für den angegebenen URI.Initializes a new instance of the WebPermission class with the specified access rights for the specified URI.

WebPermission(PermissionState)

Erstellt eine neue Instanz der WebPermission-Klasse, die alle Anforderungen entweder übergibt oder ablehnt.Creates a new instance of the WebPermission class that passes all demands or fails all demands.

Eigenschaften

AcceptList

Diese Eigenschaft gibt eine Enumeration einer einzelnen Akzeptierungsberechtigung zurück, die in dieser WebPermission enthalten ist.This property returns an enumeration of a single accept permissions held by this WebPermission. Mögliche, in der zurückgegebenen Enumeration enthaltene Objekttypen sind String und Regex.The possible objects types contained in the returned enumeration are String and Regex.

ConnectList

Diese Eigenschaft gibt eine Enumeration einer einzelnen Verbindungsberechtigung zurück, die in dieser WebPermission enthalten ist.This property returns an enumeration of a single connect permissions held by this WebPermission. Mögliche, in der zurückgegebenen Enumeration enthaltene Objekttypen sind String und Regex.The possible objects types contained in the returned enumeration are String and Regex.

Methoden

AddPermission(NetworkAccess, Regex)

Fügt der aktuellen WebPermission den angegebenen URI mit den angegebenen Zugriffsrechten hinzu.Adds the specified URI with the specified access rights to the current WebPermission.

AddPermission(NetworkAccess, String)

Fügt der aktuellen WebPermission die angegebene URI-Zeichenfolge mit den angegebenen Zugriffsrechten hinzu.Adds the specified URI string with the specified access rights to the current WebPermission.

Assert()

Deklariert, dass der aufrufende Code auf die durch eine Berechtigungsforderung geschützte Ressource über den diese Methode aufrufenden Code zugreifen kann, auch wenn Aufrufern einer höheren Ebene im Stapel keine Berechtigung zum Zugreifen auf die Ressource erteilt wurde.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. Die Verwendung von Assert() kann zu Sicherheitsproblemen führen.Using Assert() can create security issues.

(Geerbt von CodeAccessPermission)
Copy()

Erstellt eine Kopie einer WebPermission.Creates a copy of a WebPermission.

Demand()

Erzwingt zur Laufzeit eine SecurityException, wenn nicht allen Aufrufern, die in der Aufrufliste höher eingestuft sind, die Berechtigung gewährt wurde, die von der aktuellen Instanz angegeben wird.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.

(Geerbt von CodeAccessPermission)
Deny()

Verhindert, dass in der Aufrufliste höher eingestufte Aufrufer den Code verwenden, der diese Methode aufruft, um auf die Ressource zuzugreifen, die von der aktuellen Instanz angegeben wird.Prevents callers higher in the call stack from using the code that calls this method to access the resource specified by the current instance.

(Geerbt von CodeAccessPermission)
Equals(Object)

Bestimmt, ob das angegebene CodeAccessPermission-Objekt und das aktuelle CodeAccessPermission-Objekt gleich sind.Determines whether the specified CodeAccessPermission object is equal to the current CodeAccessPermission.

(Geerbt von CodeAccessPermission)
FromXml(SecurityElement)

Rekonstruiert eine WebPermission aus einer XML-Codierung.Reconstructs a WebPermission from an XML encoding.

GetHashCode()

Ruft einen Hashcode für das CodeAccessPermission-Objekt ab, das sich für die Verwendung in Hashalgorithmen und Datenstrukturen eignet, z.B. in einer Hashtabelle.Gets a hash code for the CodeAccessPermission object that is suitable for use in hashing algorithms and data structures such as a hash table.

(Geerbt von CodeAccessPermission)
GetType()

Ruft den Type der aktuellen Instanz ab.Gets the Type of the current instance.

(Geerbt von Object)
Intersect(IPermission)

Gibt die logische Schnittmenge zweier WebPermission-Instanzen zurück.Returns the logical intersection of two WebPermission instances.

IsSubsetOf(IPermission)

Bestimmt, ob die aktuelle WebPermission eine Teilmenge des angegebenen Objekts ist.Determines whether the current WebPermission is a subset of the specified object.

IsUnrestricted()

Überprüft den allgemeinen Berechtigungszustand der WebPermission.Checks the overall permission state of the WebPermission.

MemberwiseClone()

Erstellt eine flache Kopie des aktuellen Object.Creates a shallow copy of the current Object.

(Geerbt von Object)
PermitOnly()

Verhindert, dass in der Aufrufliste höher eingestufte Aufrufer den Code, der diese Methode aufruft, verwenden, um auf alle Ressourcen außer die Ressource zuzugreifen, die von der aktuellen Instanz angegeben wird.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.

(Geerbt von CodeAccessPermission)
ToString()

Erstellt eine Zeichenfolgenentsprechung des aktuellen Berechtigungsobjekts und gibt diese zurück.Creates and returns a string representation of the current permission object.

(Geerbt von CodeAccessPermission)
ToXml()

Erstellt eine XML-Codierung einer WebPermission und ihres aktuellen Zustands.Creates an XML encoding of a WebPermission and its current state.

Union(IPermission)

Gibt die logische Gesamtmenge zweier Instanzen der WebPermission-Klasse zurück.Returns the logical union between two instances of the WebPermission class.

Explizite Schnittstellenimplementierungen

IPermission.Demand() (Geerbt von CodeAccessPermission)
IStackWalk.Assert() (Geerbt von CodeAccessPermission)
IStackWalk.Demand() (Geerbt von CodeAccessPermission)
IStackWalk.Deny() (Geerbt von CodeAccessPermission)
IStackWalk.PermitOnly() (Geerbt von CodeAccessPermission)

Gilt für:

Siehe auch