WebPermission Klasse

Definition

Achtung

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

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
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
Vererbung
Attribute
Implementiert

Beispiele

Im folgenden Beispiel wird veranschaulicht, wie eine neue Instanz von mithilfe von erstellt wird WebPermission Regex .The following example demonstrates how to create a new instance of WebPermission using a Regex. Der Connect-und Accept-Liste von werden weitere Hosts hinzugefügt WebPermission .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 einen verwenden, WebPermission um einen eingeschränkten oder uneingeschränkten Zugriff auf die Ressource bereitzustellen, basierend auf dem PermissionState , der beim Erstellen von festgelegt wird WebPermission .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:

ConnectListUnd AcceptList enthalten die URIs, denen Sie die Zugriffsberechtigung erteilt haben.The ConnectList and AcceptList hold the URIs to which you have granted access permission. Verwenden Sie, um einer dieser Listen einen URI hinzuzufügen AddPermission .To add a URI to either of these lists, use AddPermission. Wenn Sie Accept als- NetworkAccess Parameter übergeben, wird der URI hinzugefügt AcceptList .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 übereinstimmen AcceptList .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. Dies erfordert WebPermission.WebPermission , dass mit dem State-Parameter auf festgelegt ist Deny .This 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

Die Informationen zum Benutzernamen und zum Standardport Uri werden vor dem Vergleich mit dem Argument für reguläre Ausdrücke, das für den Konstruktor bereitgestellt wird, entfernt WebPermission(NetworkAccess, Regex) .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, treten alle eingehenden Uri e nicht mit dem regulären Ausdruck in Einklang.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()
Veraltet.
Veraltet.

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 Zeichenfolgendarstellung 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()

Löst zur Laufzeit eine SecurityException aus, wenn die Sicherheitsanforderung nicht erfüllt ist.Throws a SecurityException at run time if the security requirement is not met.

(Geerbt von CodeAccessPermission)
IStackWalk.Assert()

Bestätigt, dass der aufrufende Code auf die durch das aktuelle Berechtigungsobjekt identifizierte Ressource zugreifen kann, selbst wenn Aufrufern einer höheren Ebene in der Aufrufliste keine Berechtigung für den Zugriff auf die Ressource erteilt wurde.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.

(Geerbt von CodeAccessPermission)
IStackWalk.Demand()

Ermittelt zur Laufzeit, ob allen Aufrufern in der Aufrufliste die vom aktuellen Berechtigungsobjekt angegebene Berechtigung erteilt wurde.Determines at run time whether all callers in the call stack have been granted the permission specified by the current permission object.

(Geerbt von CodeAccessPermission)
IStackWalk.Deny()

Bewirkt einen Fehler bei jeder Demand() für das aktuelle Objekt, das den aufrufenden Code durchläuft.Causes every Demand() for the current object that passes through the calling code to fail.

(Geerbt von CodeAccessPermission)
IStackWalk.PermitOnly()

Bewirkt, dass es bei jedem Demand() für alle den aufrufenden Code durchlaufenden Objekte (mit Ausnahme des aktuellen Objekts) zu einem Fehler kommt, selbst wenn übergeordnetem Code in der Aufrufliste die Berechtigung für den Zugriff auf andere Ressourcen gewährt wurde.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.

(Geerbt von CodeAccessPermission)

Gilt für:

Weitere Informationen