WebPermission Klasa

Definicja

Przestroga

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

Kontroluje prawa dostępu do zasobów internetowych HTTP.

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
Dziedziczenie
Atrybuty
Implementuje

Przykłady

W poniższym przykładzie pokazano, jak utworzyć nowe wystąpienie WebPermission przy użyciu klasy Regex. Dodatkowe hosty są dodawane do listy połączeń i akceptowania .WebPermission Na koniec do konsoli zostanie wyświetlona lista połącz i zaakceptuj.

//  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 Udostępnia zestaw metod i właściwości do kontrolowania dostępu do zasobów internetowych. Można użyć WebPermission elementu w celu zapewnienia ograniczonego lub nieograniczonego dostępu do zasobu na podstawie ustawienia ustawionego PermissionState WebPermission podczas tworzenia.

WebPermission Utwórz wystąpienie, wywołując jego konstruktor przy użyciu jednego z następujących zestawów parametrów:

Identyfikatory ConnectList i AcceptList przechowują identyfikatory URI, do których udzielono uprawnień dostępu. Aby dodać identyfikator URI do jednej z tych list, użyj polecenia AddPermission. Jeśli przekażesz Accept parametr jako NetworkAccess parametr, identyfikator URI zostanie dodany do elementu AcceptList. WebPermission Umożliwi nawiązywanie połączeń z klasą docelową przy użyciu identyfikatorów URI pasujących do wartości AcceptList.

Przestroga

Aby odmówić dostępu do zasobu internetowego, musisz odmówić dostępu do wszystkich możliwych ścieżek do tego zasobu. Wymaga to wywołania WebPermission.WebPermission z parametrem state ustawionym na Denywartość . Lepszym rozwiązaniem jest umożliwienie dostępu tylko do określonego zasobu. Aby uzyskać więcej informacji na temat tego tematu, zapoznaj się z tematem Using the Deny Method (Używanie metody odmowy).

Uwaga

Musisz odmówić dostępu tylko przy użyciu ścieżki kanonicznej zasobu. Nie ma potrzeby używania wszystkich odmian składniowych ścieżki.

Uwaga

Nazwa użytkownika i domyślne informacje o porcie są pozbawione przed Uri porównaniem z argumentem wyrażenia regularnego, który jest dostarczany do konstruktora WebPermission(NetworkAccess, Regex) . 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.

Konstruktory

WebPermission()

Tworzy nowe wystąpienie klasy WebPermission.

WebPermission(NetworkAccess, Regex)

Inicjuje WebPermission nowe wystąpienie klasy z określonymi prawami dostępu dla określonego wyrażenia regularnego identyfikatora URI.

WebPermission(NetworkAccess, String)

Inicjuje WebPermission nowe wystąpienie klasy z określonymi prawami dostępu dla określonego identyfikatora URI.

WebPermission(PermissionState)

Tworzy nowe wystąpienie WebPermission klasy, które przekazuje wszystkie wymagania lub kończy się niepowodzeniem wszystkich żądań.

Właściwości

AcceptList

Ta właściwość zwraca wyliczenie pojedynczego akceptowania uprawnień posiadanych przez ten WebPermissionelement . Możliwe typy obiektów zawarte w zwracanym wyliczeniem to String i Regex.

ConnectList

Ta właściwość zwraca wyliczenie pojedynczego uprawnienia połączenia przechowywanego przez ten WebPermissionelement . Możliwe typy obiektów zawarte w zwracanym wyliczeniem to String i Regex.

Metody

AddPermission(NetworkAccess, Regex)

Dodaje określony identyfikator URI z określonymi prawami dostępu do bieżącego WebPermissionelementu .

AddPermission(NetworkAccess, String)

Dodaje określony ciąg identyfikatora URI z określonymi prawami dostępu do bieżącego WebPermissionelementu .

Assert()

Deklaruje, że kod wywołujący może uzyskać dostęp do zasobu chronionego przez żądanie uprawnień za pośrednictwem kodu, który wywołuje tę metodę, nawet jeśli obiekty wywołujące wyższe w stosie nie otrzymały uprawnień dostępu do zasobu. Za pomocą polecenia Assert() można tworzyć problemy z zabezpieczeniami.

(Odziedziczone po CodeAccessPermission)
Copy()

Tworzy kopię obiektu WebPermission.

Demand()

Wymusza w SecurityException czasie wykonywania, jeśli wszystkie elementy wywołujące wyższe w stosie wywołań nie otrzymały uprawnienia określonego przez bieżące wystąpienie.

(Odziedziczone po CodeAccessPermission)
Deny()
Nieaktualne.
Nieaktualne.

Zapobiega wywoływaniom wyższym w stosie wywołań przy użyciu kodu, który wywołuje tę metodę w celu uzyskania dostępu do zasobu określonego przez bieżące wystąpienie.

(Odziedziczone po CodeAccessPermission)
Equals(Object)

Określa, czy określony CodeAccessPermission obiekt jest równy bieżącemu CodeAccessPermission.

(Odziedziczone po CodeAccessPermission)
FromXml(SecurityElement)

Rekonstruuje element WebPermission z kodowania XML.

GetHashCode()

Pobiera kod skrótu CodeAccessPermission dla obiektu, który jest odpowiedni do użycia w algorytmach tworzenia skrótów i strukturach danych, takich jak tabela skrótów.

(Odziedziczone po CodeAccessPermission)
GetType()

Type Pobiera wartość bieżącego wystąpienia.

(Odziedziczone po Object)
Intersect(IPermission)

Zwraca logiczne przecięcie dwóch WebPermission wystąpień.

IsSubsetOf(IPermission)

Określa, czy bieżący WebPermission jest podzbiorem określonego obiektu.

IsUnrestricted()

Sprawdza ogólny stan uprawnień obiektu WebPermission.

MemberwiseClone()

Tworzy płytkią kopię bieżącego Objectelementu .

(Odziedziczone po Object)
PermitOnly()

Zapobiega wywoływaniom wyższym w stosie wywołań przy użyciu kodu, który wywołuje tę metodę w celu uzyskania dostępu do wszystkich zasobów z wyjątkiem zasobu określonego przez bieżące wystąpienie.

(Odziedziczone po CodeAccessPermission)
ToString()

Tworzy i zwraca ciąg reprezentujący bieżący obiekt uprawnień.

(Odziedziczone po CodeAccessPermission)
ToXml()

Tworzy kodowanie XML elementu WebPermission i jego bieżącego stanu.

Union(IPermission)

Zwraca unię logiczną między dwoma wystąpieniami WebPermission klasy.

Jawne implementacje interfejsu

IPermission.Demand()

Zgłasza błąd SecurityException w czasie wykonywania, jeśli wymaganie dotyczące zabezpieczeń nie zostanie spełnione.

(Odziedziczone po CodeAccessPermission)
IStackWalk.Assert()

Potwierdza, że kod wywołujący może uzyskać dostęp do zasobu zidentyfikowany przez bieżący obiekt uprawnień, nawet jeśli obiekty wywołujące wyższe w stosie nie otrzymały uprawnień dostępu do zasobu.

(Odziedziczone po CodeAccessPermission)
IStackWalk.Demand()

Określa w czasie wykonywania, czy wszystkie obiekty wywołujące w stosie wywołań otrzymały uprawnienia określone przez bieżący obiekt uprawnień.

(Odziedziczone po CodeAccessPermission)
IStackWalk.Deny()

Powoduje, że każdy Demand() dla bieżącego obiektu, który przechodzi przez kod wywołujący, kończy się niepowodzeniem.

(Odziedziczone po CodeAccessPermission)
IStackWalk.PermitOnly()

Powoduje, że każdy Demand() dla wszystkich obiektów z wyjątkiem bieżącego, który przechodzi przez kod wywołujący kończy się niepowodzeniem, nawet jeśli kod wyższy w stosie wywołań otrzymał uprawnienie dostępu do innych zasobów.

(Odziedziczone po CodeAccessPermission)

Dotyczy

Zobacz też