Sdílet prostřednictvím


WebPermission Třída

Definice

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
[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
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}")>]
type WebPermission = class
    inherit CodeAccessPermission
    interface IUnrestrictedPermission
[<System.Serializable>]
type WebPermission = class
    inherit CodeAccessPermission
    interface IUnrestrictedPermission
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é jsou přidáni do seznamu připojit a přijmout .WebPermission Nakonec se v konzole zobrazí seznam 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

Upozornění

Zabezpečení přístupu kódu (CAS) bylo zastaralé ve všech verzích rozhraní .NET Framework a .NET. Nedávné verze rozhraní .NET nedodržují poznámky CAS a při použití rozhraní API souvisejících s cas vytvářejí chyby. Vývojáři by měli hledat alternativní způsoby provádění úloh zabezpečení.

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ě toho, který se nastaví při WebPermission vytvoření prostředku.

Vytvořte WebPermission instanci voláním jejího konstruktoru pomocí jedné z následujících sad parametrů:

AcceptList A ConnectList držte identifikátory URI, kterým jste udělili oprávnění k přístupu. 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ě pomocí identifikátorů URI odpovídajících hodnotě AcceptList.

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 ho 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 odstraněny 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, pak se všechny příchozí Uris nebudou shodovat s regulárním výrazem.

Konstruktory

WebPermission()
Zastaralé.

Vytvoří novou instanci třídy WebPermission.

WebPermission(NetworkAccess, Regex)
Zastaralé.

Inicializuje novou instanci WebPermission třídy se zadanými přístupovými právy pro zadaný regulární výraz URI.

WebPermission(NetworkAccess, String)
Zastaralé.

Inicializuje novou instanci WebPermission třídy se zadanými přístupovými právy pro zadaný identifikátor URI.

WebPermission(PermissionState)
Zastaralé.

Vytvoří novou instanci WebPermission třídy, která projde všemi požadavky nebo selže všechny požadavky.

Vlastnosti

AcceptList
Zastaralé.

Tato vlastnost vrátí výčet jednoho oprávnění pro přijetí, které má tento WebPermission. Možné typy objektů obsažené ve vrácené výčtu jsou String a Regex.

ConnectList
Zastaralé.

Tato vlastnost vrátí výčet jednoho oprávnění pro připojení, které drží tento WebPermission. Možné typy objektů obsažené ve vrácené výčtu jsou String a Regex.

Metody

AddPermission(NetworkAccess, Regex)
Zastaralé.

Přidá zadaný identifikátor URI se zadanými přístupovými právy k aktuálnímu WebPermission.

AddPermission(NetworkAccess, String)
Zastaralé.

Přidá zadaný řetězec identifikátoru URI se zadanými přístupovými právy k aktuálnímu WebPermission.

Assert()
Zastaralé.

Deklaruje, že volající kód má přístup k prostředku chráněnému požadavkem na oprávnění prostřednictvím kódu, který volá tuto metodu, i když volajícím vyššímu v zásobníku nebylo uděleno oprávnění pro přístup k prostředku. Použití Assert() může vytvořit problémy se zabezpečením.

(Zděděno od CodeAccessPermission)
Copy()
Zastaralé.

Vytvoří kopii souboru WebPermission.

Demand()
Zastaralé.

SecurityException Vynutí hodnotu za běhu, pokud všem volajícím, kteří jsou výše v zásobníku volání, nebylo uděleno oprávnění určené aktuální instancí.

(Zděděno od CodeAccessPermission)
Deny()
Zastaralé.
Zastaralé.

Zabraňuje volajícím, kteří jsou výše v zásobníku volání, v použití kódu, který volá tuto metodu pro přístup k prostředku určenému aktuální instancí.

(Zděděno od CodeAccessPermission)
Equals(Object)
Zastaralé.

Určuje, zda je zadaný CodeAccessPermission objekt roven aktuálnímu CodeAccessPermissionobjektu .

(Zděděno od CodeAccessPermission)
FromXml(SecurityElement)
Zastaralé.

Rekonstruuje WebPermission objekt z kódování XML.

GetHashCode()
Zastaralé.

Získá hash kód pro CodeAccessPermission objekt, který je vhodný pro použití v hashovací algoritmy a datové struktury, jako je hash tabulky.

(Zděděno od CodeAccessPermission)
GetType()
Zastaralé.

Získá aktuální Type instanci.

(Zděděno od Object)
Intersect(IPermission)
Zastaralé.

Vrátí logický průnik dvou WebPermission instancí.

IsSubsetOf(IPermission)
Zastaralé.

Určuje, zda je proud WebPermission podmnožinou zadaného objektu.

IsUnrestricted()
Zastaralé.

Zkontroluje celkový stav oprávnění .WebPermission

MemberwiseClone()
Zastaralé.

Vytvoří mělkou kopii aktuálního Objectsouboru .

(Zděděno od Object)
PermitOnly()
Zastaralé.

Zabraňuje volajícím, kteří jsou výše v zásobníku volání, v použití kódu, 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()
Zastaralé.

Vytvoří a vrátí řetězcovou reprezentaci aktuálního objektu oprávnění.

(Zděděno od CodeAccessPermission)
ToXml()
Zastaralé.

Vytvoří kódování WebPermission XML a jeho aktuální stav.

Union(IPermission)
Zastaralé.

Vrátí logické sjednocení mezi dvěma instancemi WebPermission třídy.

Platí pro

Viz také