WebPermission Třída
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
Upozornění
Code Access Security is not supported or honored by the runtime.
Řídí práva pro přístup k internetovým prostředkům 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
- Dědičnost
- Atributy
- Implementuje
Příklady
Následující příklad ukazuje, jak vytvořit novou instanci WebPermission pomocí Regex. Další hostitelé se přidají do seznamu WebPermissionpřipojení a přijetí . Nakonec se v konzole zobrazí seznam pro připojení a přijetí.
// 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
Poznámky
WebPermission poskytuje sadu metod a vlastností pro řízení přístupu k internetovým prostředkům. Můžete použít WebPermission k poskytnutí omezeného nebo neomezeného přístupu k vašemu prostředku na PermissionState základě nastaveného WebPermission při vytváření.
WebPermission Vytvořte instanci voláním jeho konstruktoru pomocí jedné z následujících sad parametrů:
Žádné parametry. Výchozí PermissionState hodnota je None.
Úloha PermissionState. Určete, jestli Unrestricted chcete povolit použití libovolného identifikátoru URI v cílové třídě, nebo None povolit přístup pouze k identifikátorům URI, které zadáte pomocí AddPermission metody.
NetworkAccess Hodnota a řetězec identifikátoru URI. Zadaný identifikátor URI má oprávnění udělená NetworkAccess hodnotou.
Specifikátor NetworkAccess a regulární výraz URI
Identifikátory ConnectList URI, ke kterým jste udělili oprávnění k přístupu, a AcceptList podržte je. Pokud chcete přidat identifikátor URI do některého z těchto seznamů, použijte AddPermission. Pokud předáte Accept jako NetworkAccess parametr, identifikátor URI se přidá do AcceptList. WebPermission umožní připojení k cílové třídě s identifikátory URI odpovídajícími AcceptListuri .
Upozornění
Pokud chcete odepřít přístup k internetovému prostředku, musíte odepřít přístup ke všem možným cestám k danému prostředku. To vyžaduje volání WebPermission.WebPermission s parametrem stavu nastaveným na Deny. Lepším přístupem je povolit přístup pouze ke konkrétnímu prostředku. Další informace o tomto předmětu najdete v tématu Použití metody zamítnutí .
Poznámka
Přístup je potřeba odepřít pouze pomocí kanonické cesty prostředku. Není nutné používat všechny syntaktické varianty cesty.
Poznámka
Uživatelské jméno a výchozí informace o portu jsou před Uri porovnáním s argumentem regulárního výrazu, který je zadán konstruktoru WebPermission(NetworkAccess, Regex) . Pokud regulární výraz obsahuje informace o uživateli nebo výchozí číslo portu, všechny příchozí Urivýrazy nebudou odpovídat regulárnímu výrazu.
Konstruktory
WebPermission() |
Vytvoří novou instanci třídy WebPermission. |
WebPermission(NetworkAccess, Regex) |
Inicializuje novou instanci WebPermission třídy se zadanými přístupovými právy pro zadaný regulární výraz URI. |
WebPermission(NetworkAccess, String) |
Inicializuje novou instanci WebPermission třídy se zadanými přístupovými právy pro zadaný identifikátor URI. |
WebPermission(PermissionState) |
Vytvoří novou instanci WebPermission třídy, která předává všechny požadavky nebo selže všechny požadavky. |
Vlastnosti
AcceptList |
Tato vlastnost vrátí výčtu jediného oprávnění accept drženého tímto WebPermission. Možné typy objektů obsažené v vrácených výčtech jsou String a Regex. |
ConnectList |
Tato vlastnost vrátí výčet jednoho oprávnění připojení držených tímto WebPermission. Možné typy objektů obsažené v vrácených výčtech jsou String a Regex. |
Metody
AddPermission(NetworkAccess, Regex) |
Přidá zadaný identifikátor URI se zadanými přístupovými právy k aktuálnímu WebPermission. |
AddPermission(NetworkAccess, String) |
Přidá zadaný řetězec identifikátoru URI se zadanými přístupovými právy k aktuálnímu WebPermission. |
Assert() |
Deklaruje, že volající kód má přístup k prostředku chráněnému požadavky na oprávnění prostřednictvím kódu, který volá tuto metodu, i když volajícím vyšší v zásobníku nebyl udělen oprávnění pro přístup k prostředku. Použití může vytvářet problémy se zabezpečením Assert() . (Zděděno od CodeAccessPermission) |
Copy() |
Vytvoří kopii WebPermissionsouboru . |
Demand() |
SecurityException Vynutí dobu běhu, pokud všichni volající vyšší v zásobníku volání nebyli udělena oprávnění určená aktuální instancí. (Zděděno od CodeAccessPermission) |
Deny() |
Zastaralé.
Zastaralé.
Zabrání volajícím v zásobníku volání, aby používali kód, který volá tuto metodu pro přístup k prostředku určenému aktuální instancí. (Zděděno od CodeAccessPermission) |
Equals(Object) |
Určuje, zda zadaný CodeAccessPermission objekt je roven aktuálnímu CodeAccessPermission. (Zděděno od CodeAccessPermission) |
FromXml(SecurityElement) |
Rekonstruuje WebPermission kódování XML. |
GetHashCode() |
Získá hash kód pro CodeAccessPermission objekt, který je vhodný pro použití v hashovací algoritmy a datové struktury, jako je hash tabulka. (Zděděno od CodeAccessPermission) |
GetType() |
Type Získá aktuální instanci. (Zděděno od Object) |
Intersect(IPermission) |
Vrátí logický průnik dvou WebPermission instancí. |
IsSubsetOf(IPermission) |
Určuje, zda je aktuální WebPermission podmnožinou zadaného objektu. |
IsUnrestricted() |
Zkontroluje celkový stav oprávnění .WebPermission |
MemberwiseClone() |
Vytvoří použádnou kopii aktuálního souboru Object. (Zděděno od Object) |
PermitOnly() |
Zabrání volajícím v zásobníku volání, aby používali kód, který volá tuto metodu pro přístup ke všem prostředkům s výjimkou prostředku určeného aktuální instancí. (Zděděno od CodeAccessPermission) |
ToString() |
Vytvoří a vrátí řetězcovou reprezentaci aktuálního objektu oprávnění. (Zděděno od CodeAccessPermission) |
ToXml() |
Vytvoří kódování WebPermission XML a jeho aktuální stav. |
Union(IPermission) |
Vrátí logickou sjednocení mezi dvěma instancemi WebPermission třídy. |
Explicitní implementace rozhraní
IPermission.Demand() |
SecurityException Vyvolá za běhu požadavek na zabezpečení za běhu. (Zděděno od CodeAccessPermission) |
IStackWalk.Assert() |
Tvrdí, že volající kód má přístup k prostředku zjištěnému aktuálním objektem oprávnění, a to i v případě, že volajícím vyšší v zásobníku nebylo uděleno oprávnění pro přístup k prostředku. (Zděděno od CodeAccessPermission) |
IStackWalk.Demand() |
Určuje, zda všichni volající v zásobníku volání obdrželi oprávnění určená aktuálním objektem oprávnění. (Zděděno od CodeAccessPermission) |
IStackWalk.Deny() |
Způsobí selhání každého Demand() aktuálního objektu, který prochází volajícím kódem. (Zděděno od CodeAccessPermission) |
IStackWalk.PermitOnly() |
Způsobí, že každý Demand() pro všechny objekty kromě aktuálního objektu, který prochází volajícím kódem, selže, a to i v případě, že kód vyšší v zásobníku volání byl udělen oprávnění pro přístup k jiným prostředkům. (Zděděno od CodeAccessPermission) |