WebPermission Klasse

Definition

Achtung

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

Steuert die Zugriffsrechte für den Zugriff auf HTTP-Internetressourcen.

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

Beispiele

Im folgenden Beispiel wird veranschaulicht, wie Sie eine neue Instanz von mithilfe Regexvon WebPermission erstellen. Der Verbindungs- und Annahmeliste von WebPermissionwerden zusätzliche Hosts hinzugefügt. Schließlich wird die Verbindungs- und Akzeptanzliste in der Konsole angezeigt.

//  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

Achtung

Die Codezugriffssicherheit (CAS, Code Access Security) ist in allen Versionen von .NET Framework und .NET veraltet. Aktuelle Versionen von .NET berücksichtigen keine CAS-Anmerkungen und erzeugen Fehler, wenn CAS-bezogene APIs verwendet werden. Entwickler*innen sollten alternative Mittel zum Ausführen von Sicherheitsaufgaben suchen.

WebPermission stellt eine Reihe von Methoden und Eigenschaften bereit, um den Zugriff auf Internetressourcen zu steuern. Sie können einen WebPermission verwenden, um entweder eingeschränkten oder uneingeschränkten Zugriff auf Ihre Ressource bereitzustellen, basierend auf dem, der PermissionState beim Erstellen von WebPermission festgelegt wird.

Erstellen Sie eine WebPermission Instanz, indem Sie ihren Konstruktor mit einem der folgenden Parametersätze aufrufen:

  • Keine Parameter. Der Standardwert von PermissionState lautet None.

  • Ein PermissionState. Geben Sie entweder Unrestricted an, um die Verwendung eines beliebigen URI in der Zielklasse zuzulassen, oder None um nur den Zugriff auf URIs zuzulassen, die Sie über die Verwendung der AddPermission -Methode angeben.

  • Ein NetworkAccess Wert und eine URI-Zeichenfolge. Der angegebene URI verfügt über Berechtigungen, die NetworkAccess vom Wert gewährt werden.

  • Ein NetworkAccess bezeichner und ein regulärer URI-Ausdruck.

Die ConnectList und AcceptList enthalten die URIs, denen Sie Zugriffsberechtigungen erteilt haben. Um einer dieser Listen einen URI hinzuzufügen, verwenden Sie AddPermission. Wenn Sie als Parameter übergebenAccept, wird der URI hinzugefügtAcceptList.NetworkAccess WebPermission ermöglicht Verbindungen mit Ihrer Zielklasse mit URIs, die mit übereinstimmen AcceptList.

Achtung

Um den Zugriff auf eine Internetressource zu verweigern, müssen Sie den Zugriff auf alle möglichen Pfade zu dieser Ressource verweigern. Dazu ist der Aufruf WebPermission.WebPermission erforderlich, wobei der Zustandsparameter auf festgelegt ist Deny. Ein besserer Ansatz besteht darin, nur den Zugriff auf die jeweilige Ressource zuzulassen. Weitere Informationen zu diesem Thema finden Sie im Thema Verwenden der Deny-Methode .

Hinweis

Sie müssen den Zugriff nur mithilfe des kanonischen Ressourcenpfads verweigern. Es ist nicht erforderlich, alle syntaktischen Variationen des Pfads zu verwenden.

Hinweis

Benutzernamen- und Standardportinformationen werden vor Uri dem Vergleich mit dem Argument regulärer Ausdrücke entfernt, das für den WebPermission(NetworkAccess, Regex) Konstruktor bereitgestellt wird. Wenn der reguläre Ausdruck Benutzerinformationen oder die Standardportnummer enthält, können alle eingehenden Uris nicht mit dem regulären Ausdruck übereinstimmen.

Konstruktoren

WebPermission()
Veraltet.

Erstellt eine neue Instanz der WebPermission-Klasse.

WebPermission(NetworkAccess, Regex)
Veraltet.

Initialisiert eine neue Instanz der WebPermission-Klasse mit den angegebenen Zugriffsrechten für den angegebenen regulären URI-Ausdruck.

WebPermission(NetworkAccess, String)
Veraltet.

Initialisiert eine neue Instanz der WebPermission-Klasse mit den angegebenen Zugriffsrechten für den angegebenen URI.

WebPermission(PermissionState)
Veraltet.

Erstellt eine neue Instanz der WebPermission-Klasse, die alle Anforderungen entweder übergibt oder ablehnt.

Eigenschaften

AcceptList
Veraltet.

Diese Eigenschaft gibt eine Enumeration einer einzelnen Akzeptierungsberechtigung zurück, die in dieser WebPermission enthalten ist. Mögliche, in der zurückgegebenen Enumeration enthaltene Objekttypen sind String und Regex.

ConnectList
Veraltet.

Diese Eigenschaft gibt eine Enumeration einer einzelnen Verbindungsberechtigung zurück, die in dieser WebPermission enthalten ist. Mögliche, in der zurückgegebenen Enumeration enthaltene Objekttypen sind String und Regex.

Methoden

AddPermission(NetworkAccess, Regex)
Veraltet.

Fügt der aktuellen WebPermission den angegebenen URI mit den angegebenen Zugriffsrechten hinzu.

AddPermission(NetworkAccess, String)
Veraltet.

Fügt der aktuellen WebPermission die angegebene URI-Zeichenfolge mit den angegebenen Zugriffsrechten hinzu.

Assert()
Veraltet.

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. Die Verwendung von Assert() kann zu Sicherheitsproblemen führen.

(Geerbt von CodeAccessPermission)
Copy()
Veraltet.

Erstellt eine Kopie einer WebPermission.

Demand()
Veraltet.

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.

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

(Geerbt von CodeAccessPermission)
Equals(Object)
Veraltet.

Bestimmt, ob das angegebene CodeAccessPermission-Objekt und das aktuelle CodeAccessPermission-Objekt gleich sind.

(Geerbt von CodeAccessPermission)
FromXml(SecurityElement)
Veraltet.

Rekonstruiert eine WebPermission aus einer XML-Codierung.

GetHashCode()
Veraltet.

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.

(Geerbt von CodeAccessPermission)
GetType()
Veraltet.

Ruft den Type der aktuellen Instanz ab.

(Geerbt von Object)
Intersect(IPermission)
Veraltet.

Gibt die logische Schnittmenge zweier WebPermission-Instanzen zurück.

IsSubsetOf(IPermission)
Veraltet.

Bestimmt, ob die aktuelle WebPermission eine Teilmenge des angegebenen Objekts ist.

IsUnrestricted()
Veraltet.

Überprüft den allgemeinen Berechtigungszustand der WebPermission.

MemberwiseClone()
Veraltet.

Erstellt eine flache Kopie des aktuellen Object.

(Geerbt von Object)
PermitOnly()
Veraltet.

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.

(Geerbt von CodeAccessPermission)
ToString()
Veraltet.

Erstellt eine Zeichenfolgendarstellung des aktuellen Berechtigungsobjekts und gibt diese zurück.

(Geerbt von CodeAccessPermission)
ToXml()
Veraltet.

Erstellt eine XML-Codierung einer WebPermission und ihres aktuellen Zustands.

Union(IPermission)
Veraltet.

Gibt die logische Gesamtmenge zweier Instanzen der WebPermission-Klasse zurück.

Gilt für:

Weitere Informationen