WebPermission Klasa
Definicja
Ważne
Niektóre informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany przed wydaniem. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.
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 Twórca wystąpienie, wywołując jego konstruktor przy użyciu jednego z następujących zestawów parametrów:
Brak parametrów. Wartość domyślna PermissionState to None.
Klasa PermissionState. Unrestricted Określ , aby zezwolić na użycie dowolnego identyfikatora URI w klasie docelowej lub None zezwolić na dostęp tylko do identyfikatorów URI, które określisz za pomocą AddPermission metody .
NetworkAccess Wartość i ciąg identyfikatora URI. Określony identyfikator URI ma uprawnienia przyznane przez NetworkAccess wartość.
Specyfikator NetworkAccess i wyrażenie regularne identyfikatora URI.
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ż
Opinia
https://aka.ms/ContentUserFeedback.
Dostępne już wkrótce: W 2024 r. będziemy stopniowo wycofywać zgłoszenia z serwisu GitHub jako mechanizm przesyłania opinii na temat zawartości i zastępować go nowym systemem opinii. Aby uzyskać więcej informacji, sprawdź:Prześlij i wyświetl opinię dla