WebPermission WebPermission WebPermission WebPermission Class

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 Regexmithilfe von erstellt 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

WebPermissionstellt 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 PermissionState auf dem WebPermission , der beim Erstellen von 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 WebPermission eine-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:

ConnectList UndAcceptList enthalten die URIs, denen Sie die Zugriffsberechtigung erteilt haben.The ConnectList and AcceptList hold the URIs to which you have granted access permission. Verwenden AddPermissionSie, um einer dieser Listen einen URI hinzuzufügen.To add a URI to either of these lists, use AddPermission. Wenn Sie Accept NetworkAccess als-Parameter übergeben, AcceptListwird der URI hinzugefügt.If you pass Accept as the NetworkAccess parameter, the URI will be added to the AcceptList. WebPermissionermöglicht Verbindungen mit der Zielklasse mit URIs, die AcceptListmit ü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. Dies erfordert WebPermission.WebPermission , dass mit dem State- DenyParameter auf festgelegt ist.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 unter NIB: Verwenden des Themas deny -Methode.For more information about this subject, refer to the NIB: 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 Uri Informationen zum Benutzernamen und zum Standardport werden vor dem Vergleich mit dem Argument für reguläre Ausdrücke, das für WebPermission(NetworkAccess, Regex) den Konstruktor bereitgestellt wird, 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, treten alle Eingeh Urienden 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() WebPermission() WebPermission() WebPermission()

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

WebPermission(NetworkAccess, Regex) WebPermission(NetworkAccess, Regex) WebPermission(NetworkAccess, Regex) 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) WebPermission(NetworkAccess, String) WebPermission(NetworkAccess, String) 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) WebPermission(PermissionState) WebPermission(PermissionState) 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 AcceptList AcceptList 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 ConnectList ConnectList 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) AddPermission(NetworkAccess, Regex) AddPermission(NetworkAccess, Regex) 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) AddPermission(NetworkAccess, String) AddPermission(NetworkAccess, String) 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() Assert() Assert() 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.

(Inherited from CodeAccessPermission)
Copy() Copy() Copy() Copy()

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

Demand() Demand() Demand() Demand()

Erzwingt zur Laufzeit eine SecurityException, wenn die von der aktuellen Instanz angegebene Berechtigung keinem übergeordneten Aufrufer in der Aufrufliste gewährt wurde.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.

(Inherited from CodeAccessPermission)
Deny() Deny() Deny() Deny()

Verhindert, dass übergeordnete Aufrufer in der Aufrufliste auf die von der aktuellen Instanz angegebene Ressource über Code zugreifen, der diese Methode aufruft.Prevents callers higher in the call stack from using the code that calls this method to access the resource specified by the current instance.

(Inherited from CodeAccessPermission)
Equals(Object) Equals(Object) Equals(Object) 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.

(Inherited from CodeAccessPermission)
FromXml(SecurityElement) FromXml(SecurityElement) FromXml(SecurityElement) FromXml(SecurityElement)

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

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

(Inherited from CodeAccessPermission)
GetType() GetType() GetType() GetType()

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

(Inherited from Object)
Intersect(IPermission) Intersect(IPermission) Intersect(IPermission) Intersect(IPermission)

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

IsSubsetOf(IPermission) IsSubsetOf(IPermission) IsSubsetOf(IPermission) 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() IsUnrestricted() IsUnrestricted() IsUnrestricted()

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

MemberwiseClone() MemberwiseClone() MemberwiseClone() MemberwiseClone()

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

(Inherited from Object)
PermitOnly() PermitOnly() PermitOnly() PermitOnly()

Verhindert, dass übergeordnete Aufrufer in der Aufrufliste auf alle außer der von der aktuellen Instanz angegebenen Ressource über den Code zugreifen, der diese Methode aufruft.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.

(Inherited from CodeAccessPermission)
ToString() ToString() ToString() ToString()

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

(Inherited from CodeAccessPermission)
ToXml() ToXml() ToXml() ToXml()

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

Union(IPermission) Union(IPermission) Union(IPermission) 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() IPermission.Demand() IPermission.Demand() IPermission.Demand() Inherited from CodeAccessPermission
IStackWalk.Assert() IStackWalk.Assert() IStackWalk.Assert() IStackWalk.Assert() Inherited from CodeAccessPermission
IStackWalk.Demand() IStackWalk.Demand() IStackWalk.Demand() IStackWalk.Demand() Inherited from CodeAccessPermission
IStackWalk.Deny() IStackWalk.Deny() IStackWalk.Deny() IStackWalk.Deny() Inherited from CodeAccessPermission
IStackWalk.PermitOnly() IStackWalk.PermitOnly() IStackWalk.PermitOnly() IStackWalk.PermitOnly() Inherited from CodeAccessPermission

Gilt für:

Siehe auch