WebPermission Klasa

Definicja

Kontroluje prawa dostępu do zasobów internetowych protokołu HTTP.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.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
Dziedziczenie
Atrybuty
Implementuje

Przykłady

Poniższy przykład pokazuje, jak utworzyć nowe wystąpienie WebPermission przy użyciu Regex.The following example demonstrates how to create a new instance of WebPermission using a Regex. Dodatkowe hosty są dodawane do listy Połącz i zaakceptuj WebPermission.Additional hosts are added to the connect and accept list of WebPermission. Na koniec lista Połącz i zaakceptuj zostanie wyświetlona w konsoli programu.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

Uwagi

WebPermission zawiera zestaw metod i właściwości umożliwiających kontrolowanie dostępu do zasobów internetowych.WebPermission provides a set of methods and properties to control access to Internet resources. W celu zapewnienia ograniczonego lub nieograniczonego dostępu do zasobu można użyć WebPermission, na podstawie PermissionState ustawionych podczas tworzenia 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.

Utwórz wystąpienie WebPermission, wywołując jego Konstruktor przy użyciu jednego z następujących zestawów parametrów:Create a WebPermission instance by calling its constructor using one of the following sets of parameters:

ConnectList i AcceptList przechowują identyfikatory URI, do których udzielono uprawnień dostępu.The ConnectList and AcceptList hold the URIs to which you have granted access permission. Aby dodać identyfikator URI do jednej z tych list, użyj AddPermission.To add a URI to either of these lists, use AddPermission. W przypadku przekazania Accept jako parametru NetworkAccess, identyfikator URI zostanie dodany do AcceptList.If you pass Accept as the NetworkAccess parameter, the URI will be added to the AcceptList. WebPermission umożliwi nawiązywanie połączeń z klasą docelową przy użyciu identyfikatorów URI pasujących do AcceptList.WebPermission will allow connections to your target class with URIs matching the AcceptList.

Przestroga

Aby odmówić dostępu do zasobu internetowego, należy odmówić dostępu do wszystkich możliwych ścieżek do tego zasobu.To deny access to an Internet resource, you must deny access to all the possible paths to that resource. Wymaga to wywołania WebPermission.WebPermission z parametrem stanu ustawionym na Deny.This requires calling WebPermission.WebPermission with state parameter set to Deny. Lepszym rozwiązaniem jest umożliwienie dostępu tylko do określonego zasobu.A better approach is to allow access to the specific resource only. Aby uzyskać więcej informacji na temat tego tematu, zapoznaj się z tematem Korzystanie z metody Odmów .For more information about this subject, refer to the Using the Deny Method topic.

Uwaga

Należy odmówić dostępu tylko przy użyciu ścieżki kanonicznej zasobu.You need to deny access using only the resource canonical path. Nie ma potrzeby używania wszystkich odmian składniowych ścieżki.There is no need to use all the path's syntactical variations.

Uwaga

Nazwa użytkownika i domyślne informacje o porcie są usuwane z Uri przed porównaniem z argumentem wyrażenia regularnego, który jest dostarczany do konstruktora 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. Jeśli wyrażenie regularne zawiera informacje o użytkowniku lub domyślny numer portu, wszystkie przychodzące Uris nie będą zgodne z wyrażeniem regularnym.If the regular expression contains user information or the default port number, then all incoming Uris will fail to match the regular expression.

Konstruktory

WebPermission()

Tworzy nowe wystąpienie klasy WebPermission.Creates a new instance of the WebPermission class.

WebPermission(NetworkAccess, Regex)

Inicjuje nowe wystąpienie klasy WebPermission z określonymi prawami dostępu dla określonego wyrażenia regularnego identyfikatora URI.Initializes a new instance of the WebPermission class with the specified access rights for the specified URI regular expression.

WebPermission(NetworkAccess, String)

Inicjuje nowe wystąpienie klasy WebPermission z określonymi prawami dostępu dla określonego identyfikatora URI.Initializes a new instance of the WebPermission class with the specified access rights for the specified URI.

WebPermission(PermissionState)

Tworzy nowe wystąpienie klasy WebPermission, które przekazuje wszystkie wymagania lub zakończy się niepowodzeniem.Creates a new instance of the WebPermission class that passes all demands or fails all demands.

Właściwości

AcceptList

Ta właściwość zwraca Wyliczenie jednego uprawnienia do akceptowania przechowywanego przez ten WebPermission.This property returns an enumeration of a single accept permissions held by this WebPermission. Możliwe typy obiektów zawarte w zwracanym wyliczeniu to String i Regex.The possible objects types contained in the returned enumeration are String and Regex.

ConnectList

Ta właściwość zwraca Wyliczenie jednego z uprawnień nawiązywania połączenia, które są przechowywane przez ten WebPermission.This property returns an enumeration of a single connect permissions held by this WebPermission. Możliwe typy obiektów zawarte w zwracanym wyliczeniu to String i Regex.The possible objects types contained in the returned enumeration are String and Regex.

Metody

AddPermission(NetworkAccess, Regex)

Dodaje określony identyfikator URI z określonymi prawami dostępu do bieżącego WebPermission.Adds the specified URI with the specified access rights to the current WebPermission.

AddPermission(NetworkAccess, String)

Dodaje określony ciąg identyfikatora URI z określonymi prawami dostępu do bieżącego WebPermission.Adds the specified URI string with the specified access rights to the current WebPermission.

Assert()

Deklaruje, że kod wywołujący może uzyskać dostęp do zasobu chronionego przez żądanie dostępu za pomocą kodu, który wywołuje tę metodę, nawet jeśli obiekty wywołujące wyższego poziomu stosu nie uzyskały uprawnienia dostępu do zasobu.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. Za pomocą Assert() można tworzyć problemy z zabezpieczeniami.Using Assert() can create security issues.

(Odziedziczone po CodeAccessPermission)
Copy()

Tworzy kopię WebPermission.Creates a copy of a WebPermission.

Demand()

Wymusza SecurityException w czasie wykonywania, jeśli wszyscy wywołujący znajdujący się wyżej w stosie wywołań nie udzielił uprawnień określonych przez bieżące wystąpienie.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.

(Odziedziczone po CodeAccessPermission)
Deny()

Zapobiega wywoływaniu obiektów wywołujących w stosie wywołań przy użyciu kodu wywołującego tę metodę w celu uzyskania dostępu do zasobu określonego przez bieżące wystąpienie.Prevents callers higher in the call stack from using the code that calls this method to access the resource specified by the current instance.

(Odziedziczone po CodeAccessPermission)
Equals(Object)

Określa, czy określony obiekt CodeAccessPermission jest równy bieżącemu CodeAccessPermission.Determines whether the specified CodeAccessPermission object is equal to the current CodeAccessPermission.

(Odziedziczone po CodeAccessPermission)
FromXml(SecurityElement)

Rekonstruuje WebPermission z kodowania XML.Reconstructs a WebPermission from an XML encoding.

GetHashCode()

Pobiera kod skrótu dla obiektu CodeAccessPermission, który jest odpowiedni do użycia w algorytmach wyznaczania wartości skrótu i struktur danych, takich jak tabela skrótów.Gets a hash code for the CodeAccessPermission object that is suitable for use in hashing algorithms and data structures such as a hash table.

(Odziedziczone po CodeAccessPermission)
GetType()

Pobiera Type bieżącego wystąpienia.Gets the Type of the current instance.

(Odziedziczone po Object)
Intersect(IPermission)

Zwraca logiczną część wspólną dwóch wystąpień WebPermission.Returns the logical intersection of two WebPermission instances.

IsSubsetOf(IPermission)

Określa, czy bieżący WebPermission jest podzbiorem określonego obiektu.Determines whether the current WebPermission is a subset of the specified object.

IsUnrestricted()

Sprawdza ogólny stan uprawnień WebPermission.Checks the overall permission state of the WebPermission.

MemberwiseClone()

Tworzy skróconą kopię bieżącego Object.Creates a shallow copy of the current Object.

(Odziedziczone po Object)
PermitOnly()

Zapobiega wywoływaniu obiektów wywołujących w stosie wywołań przy użyciu kodu wywołującego tę metodę w celu uzyskania dostępu do wszystkich zasobów z wyjątkiem zasobu określonego przez bieżące wystąpienie.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.

(Odziedziczone po CodeAccessPermission)
ToString()

Tworzy i zwraca reprezentację ciągu dla bieżącego obiektu uprawnienia.Creates and returns a string representation of the current permission object.

(Odziedziczone po CodeAccessPermission)
ToXml()

Tworzy Kodowanie XML WebPermission i jego bieżący stan.Creates an XML encoding of a WebPermission and its current state.

Union(IPermission)

Zwraca Unię logiczną między dwoma wystąpieniami klasy WebPermission.Returns the logical union between two instances of the WebPermission class.

Jawne implementacje interfejsu

IPermission.Demand() (Odziedziczone po CodeAccessPermission)
IStackWalk.Assert() (Odziedziczone po CodeAccessPermission)
IStackWalk.Demand() (Odziedziczone po CodeAccessPermission)
IStackWalk.Deny() (Odziedziczone po CodeAccessPermission)
IStackWalk.PermitOnly() (Odziedziczone po CodeAccessPermission)

Dotyczy

Zobacz też