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 folgende Beispiel wird veranschaulicht, wie erstellen Sie eine neue Instanz der WebPermission mithilfe einer Regex.The following example demonstrates how to create a new instance of WebPermission using a Regex. Weitere Hosts hinzugefügt werden, für das Verbinden, und akzeptieren Sie die Liste der WebPermission.Additional hosts are added to the connect and accept list of WebPermission. Schließlich verbinden und akzeptieren Sie die Liste in der Konsole angezeigt werden.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 einen Satz von Methoden und Eigenschaften zum Steuern des Zugriffs auf Ressourcen im Internet bereit.WebPermission provides a set of methods and properties to control access to Internet resources. Können Sie eine WebPermission eingeschränkter oder uneingeschränkter Zugriff auf die Ressource, auf der Grundlage der PermissionState , wird festgelegt, wenn die WebPermission erstellt 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 durch Aufrufen des Konstruktors mit einem der folgenden Parametersätze:Create a WebPermission instance by calling its constructor using one of the following sets of parameters:

Die ConnectList und AcceptList enthalten die URIs, die für die Sie Zugriffsberechtigungen erteilt.The ConnectList and AcceptList hold the URIs to which you have granted access permission. Verwenden Sie zum Hinzufügen eines URI zu einer der beiden Listen AddPermission.To add a URI to either of these lists, use AddPermission. Wenn Sie übergeben Accept als die NetworkAccess Parameter, der URI wird hinzugefügt der AcceptList.If you pass Accept as the NetworkAccess parameter, the URI will be added to the AcceptList. WebPermission lässt Verbindungen mit der Zielklasse mit übereinstimmenden URIs der AcceptList.WebPermission will allow connections to your target class with URIs matching the AcceptList.

Achtung

Zum Verweigern von Zugriff auf eine Internetressource müssen Sie den Zugriff auf alle möglichen Pfade auf diese Ressource verweigert.To deny access to an Internet resource, you must deny access to all the possible paths to that resource. Dies erfordert das Aufrufen WebPermission.WebPermission mit State-Parameter festgelegt Deny.This requires calling WebPermission.WebPermission with state parameter set to Deny. Ein besserer Ansatz ist nur für die jeweilige Ressource erlauben.A better approach is to allow access to the specific resource only. Weitere Informationen zu diesem Thema finden Sie in der NIB: Verwenden der Deny-Methode Thema.For more information about this subject, refer to the NIB: Using the Deny Method topic.

Hinweis

Sie müssen den Zugriff nur den kanonischen Pfad Ressource zu verweigern.You need to deny access using only the resource canonical path. Es ist nicht erforderlich, alle Path syntaktische Varianten verwenden.There is no need to use all the path's syntactical variations.

Hinweis

Benutzer und -Port-Informationen werden entfernt, von der Uri vor dem Vergleich mit dem regulären Ausdruck-Argument, die an die WebPermission(NetworkAccess, Regex) Konstruktor.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 Standardportnummer, und alle eingehenden enthält Uris kann nicht dem regulären Ausdruck übereinstimmen.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