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 połączenia i akceptowania WebPermissionlisty . 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

Przestroga

Zabezpieczenia dostępu do kodu (CAS) zostały przestarzałe we wszystkich wersjach .NET Framework i .NET. Najnowsze wersje platformy .NET nie honorują adnotacji CAS i generują błędy, jeśli są używane interfejsy API związane z usługą CAS. Deweloperzy powinni szukać alternatywnych sposobów wykonywania zadań zabezpieczeń.

WebPermission Udostępnia zestaw metod i właściwości do kontrolowania dostępu do zasobów internetowych. Możesz użyć elementu , WebPermission aby zapewnić ograniczony lub nieograniczony dostęp do zasobu, na PermissionState podstawie tego, który jest ustawiony podczas WebPermission 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 URI, do których udzielono uprawnień dostępu, 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. W przypadku przekazania Accept jako parametru NetworkAccess identyfikator URI zostanie dodany do elementu AcceptList. WebPermission umożliwia nawiązywanie połączeń z klasą docelową przy użyciu identyfikatorów URI pasujących do elementu 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 stanu 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 przy użyciu tylko ścieżki kanonicznej zasobu. Nie ma potrzeby używania wszystkich odmian syntatycznych ś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()
Przestarzałe.

Tworzy nowe wystąpienie klasy WebPermission.

WebPermission(NetworkAccess, Regex)
Przestarzałe.

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

WebPermission(NetworkAccess, String)
Przestarzałe.

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

WebPermission(PermissionState)
Przestarzałe.

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

Właściwości

AcceptList
Przestarzałe.

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

ConnectList
Przestarzałe.

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

Metody

AddPermission(NetworkAccess, Regex)
Przestarzałe.

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

AddPermission(NetworkAccess, String)
Przestarzałe.

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

Assert()
Przestarzałe.

Deklaruje, że kod wywołujący może uzyskać dostęp do zasobu chronionego przez żądanie uprawnień za pomocą kodu wywołującego tę metodę, nawet jeśli osoby wywołujące wyższe w stosie nie otrzymały uprawnień dostępu do zasobu. Używanie Assert() polecenia może powodować problemy z zabezpieczeniami.

(Odziedziczone po CodeAccessPermission)
Copy()
Przestarzałe.

Tworzy kopię elementu WebPermission.

Demand()
Przestarzałe.

Wymusza czas wykonywania, SecurityException jeśli wszystkie osoby wywołujące wyższe w stosie wywołań nie otrzymały uprawnień określonych przez bieżące wystąpienie.

(Odziedziczone po CodeAccessPermission)
Deny()
Przestarzałe.
Przestarzałe.

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)
Przestarzałe.

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

(Odziedziczone po CodeAccessPermission)
FromXml(SecurityElement)
Przestarzałe.

Rekonstruuje element WebPermission z kodowania XML.

GetHashCode()
Przestarzałe.

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()
Przestarzałe.

Type Pobiera bieżące wystąpienie.

(Odziedziczone po Object)
Intersect(IPermission)
Przestarzałe.

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

IsSubsetOf(IPermission)
Przestarzałe.

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

IsUnrestricted()
Przestarzałe.

Sprawdza ogólny stan uprawnień obiektu WebPermission.

MemberwiseClone()
Przestarzałe.

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

(Odziedziczone po Object)
PermitOnly()
Przestarzałe.

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

(Odziedziczone po CodeAccessPermission)
ToString()
Przestarzałe.

Tworzy i zwraca reprezentację ciągu bieżącego obiektu uprawnień.

(Odziedziczone po CodeAccessPermission)
ToXml()
Przestarzałe.

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

Union(IPermission)
Przestarzałe.

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

Dotyczy

Zobacz też