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.Controls rights to access HTTP Internet resources.

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 .The following example demonstrates how to create a new instance of WebPermission using a Regex. Další hostitelé se přidají do seznamu připojit a přijmout WebPermission .Additional hosts are added to the connect and accept list of WebPermission. Nakonec se zobrazí seznam připojit a přijmout do konzoly.Finally, the connect and accept list are displayed to the console.

//  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.WebPermission provides a set of methods and properties to control access to Internet resources. Můžete použít WebPermission k poskytnutí omezeného nebo neomezeného přístupu k prostředku v závislosti na PermissionState tom, který je nastaven při WebPermission vytvoření.You can use a WebPermission to provide either restricted or unrestricted access to your resource, based on the PermissionState that is set when the WebPermission is created.

Vytvořte WebPermission instanci voláním jejího konstruktoru pomocí jedné z následujících sad parametrů:Create a WebPermission instance by calling its constructor using one of the following sets of parameters:

ConnectListA AcceptList drží identifikátory URI, ke kterým jste udělili oprávnění k přístupu.The ConnectList and AcceptList hold the URIs to which you have granted access permission. Chcete-li přidat identifikátor URI k některému z těchto seznamů, použijte AddPermission .To add a URI to either of these lists, use AddPermission. Pokud předáte Accept jako NetworkAccess parametr, identifikátor URI se přidá do AcceptList .If you pass Accept as the NetworkAccess parameter, the URI will be added to the AcceptList. WebPermission umožní připojení k vaší cílové třídě s identifikátory URI, které odpovídají AcceptList .WebPermission will allow connections to your target class with URIs matching the AcceptList.

Upozornění

Chcete-li odepřít přístup k internetovému prostředku, musíte odepřít přístup ke všem možným cestám k tomuto prostředku.To deny access to an Internet resource, you must deny access to all the possible paths to that resource. To vyžaduje volání WebPermission.WebPermission s parametrem State nastaveným na Deny .This requires calling WebPermission.WebPermission with state parameter set to Deny. Lepším přístupem je povolení přístupu pouze ke konkrétnímu prostředku.A better approach is to allow access to the specific resource only. Další informace o tomto tématu najdete v tématu použití metody Deny .For more information about this subject, refer to the Using the Deny Method topic.

Poznámka

Musíte odepřít přístup jenom pomocí kanonické cesty prostředku.You need to deny access using only the resource canonical path. Není nutné používat všechny syntaktické variace cesty.There is no need to use all the path's syntactical variations.

Poznámka

Uživatelské jméno a výchozí informace o portu jsou odstraněny z Uri Před porovnáním s argumentem regulárního výrazu, který je dodán WebPermission(NetworkAccess, Regex) konstruktoru.User name and default port information is stripped from the Uri before the comparison with the regular expression argument that is supplied to the WebPermission(NetworkAccess, Regex) constructor. Pokud regulární výraz obsahuje informace o uživateli nebo výchozí číslo portu, pak se všechny příchozí Uri s neshodují s regulárním výrazem.If the regular expression contains user information or the default port number, then all incoming Uris will fail to match the regular expression.

Konstruktory

WebPermission()

Vytvoří novou instanci třídy WebPermission.Creates a new instance of the WebPermission class.

WebPermission(NetworkAccess, Regex)

Inicializuje novou instanci WebPermission třídy se zadanými přístupovými právy pro zadaný regulární výraz identifikátoru URI.Initializes a new instance of the WebPermission class with the specified access rights for the specified URI regular expression.

WebPermission(NetworkAccess, String)

Inicializuje novou instanci WebPermission třídy se zadanými přístupovými právy pro zadaný identifikátor URI.Initializes a new instance of the WebPermission class with the specified access rights for the specified URI.

WebPermission(PermissionState)

Vytvoří novou instanci WebPermission třídy, která projde všechny požadavky, nebo se všechny požadavky selžou.Creates a new instance of the WebPermission class that passes all demands or fails all demands.

Vlastnosti

AcceptList

Tato vlastnost vrací výčet jediného přijetí oprávnění, které drží WebPermission .This property returns an enumeration of a single accept permissions held by this WebPermission. Možné typy objektů obsažené ve vráceném výčtu jsou String a Regex .The possible objects types contained in the returned enumeration are String and Regex.

ConnectList

Tato vlastnost vrací výčet jediného oprávnění k připojení, která jsou tímto výsledkem uložena WebPermission .This property returns an enumeration of a single connect permissions held by this WebPermission. Možné typy objektů obsažené ve vráceném výčtu jsou String a Regex .The possible objects types contained in the returned enumeration are String and Regex.

Metody

AddPermission(NetworkAccess, Regex)

Přidá zadaný identifikátor URI se zadaným oprávněním pro přístup k aktuálnímu WebPermission .Adds the specified URI with the specified access rights to the current WebPermission.

AddPermission(NetworkAccess, String)

Přidá zadaný řetězec identifikátoru URI se zadaným oprávněním pro přístup k aktuálnímu WebPermission .Adds the specified URI string with the specified access rights to the current WebPermission.

Assert()

Deklaruje, že volající kód má přístup k prostředku, který je chráněn požadavkem oprávnění prostřednictvím kódu, který volá tuto metodu, a to i v případě, že by volajícím vyšším v zásobníku nebylo uděleno oprávnění pro přístup k prostředku.Declares that the calling code can access the resource protected by a permission demand through the code that calls this method, even if callers higher in the stack have not been granted permission to access the resource. Použití Assert() může vytvářet problémy se zabezpečením.Using Assert() can create security issues.

(Zděděno od CodeAccessPermission)
Copy()

Vytvoří kopii WebPermission .Creates a copy of a WebPermission.

Demand()

Vynutí za SecurityException běhu v případě, že u všech volajících vyšších v zásobníku volání nebylo uděleno oprávnění určené aktuální instancí.Forces a SecurityException at run time if all callers higher in the call stack have not been granted the permission specified by the current instance.

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

Brání volajícím vyššímu v zásobníku volání z použití kódu, který volá tuto metodu pro přístup k prostředku určenému aktuální instancí.Prevents callers higher in the call stack from using the code that calls this method to access the resource specified by the current instance.

(Zděděno od CodeAccessPermission)
Equals(Object)

Určuje, zda CodeAccessPermission je zadaný objekt stejný jako aktuální CodeAccessPermission .Determines whether the specified CodeAccessPermission object is equal to the current CodeAccessPermission.

(Zděděno od CodeAccessPermission)
FromXml(SecurityElement)

Rekonstruuje WebPermission z kódování XML.Reconstructs a WebPermission from an XML encoding.

GetHashCode()

Získá kód hodnoty hash pro CodeAccessPermission objekt, který je vhodný pro použití v algoritmech hash a datových strukturách, jako je zatřiďovací tabulka.Gets a hash code for the CodeAccessPermission object that is suitable for use in hashing algorithms and data structures such as a hash table.

(Zděděno od CodeAccessPermission)
GetType()

Získá Type aktuální instanci.Gets the Type of the current instance.

(Zděděno od Object)
Intersect(IPermission)

Vrátí logický průnik dvou WebPermission instancí.Returns the logical intersection of two WebPermission instances.

IsSubsetOf(IPermission)

Určuje, zda WebPermission je aktuální podmnožinou zadaného objektu.Determines whether the current WebPermission is a subset of the specified object.

IsUnrestricted()

Kontroluje celkový stav oprávnění WebPermission .Checks the overall permission state of the WebPermission.

MemberwiseClone()

Vytvoří kopii aktuálního seznamu Object .Creates a shallow copy of the current Object.

(Zděděno od Object)
PermitOnly()

Zabraňuje volajícím vyššímu v zásobníku volání z použití kódu, který volá tuto metodu pro přístup ke všem prostředkům kromě prostředku určeného aktuální instancí.Prevents callers higher in the call stack from using the code that calls this method to access all resources except for the resource specified by the current instance.

(Zděděno od CodeAccessPermission)
ToString()

Vytvoří a vrátí řetězcovou reprezentaci aktuálního objektu oprávnění.Creates and returns a string representation of the current permission object.

(Zděděno od CodeAccessPermission)
ToXml()

Vytvoří kódování XML WebPermission a jeho aktuální stav.Creates an XML encoding of a WebPermission and its current state.

Union(IPermission)

Vrátí logické sjednocení mezi dvěma instancemi WebPermission třídy.Returns the logical union between two instances of the WebPermission class.

Explicitní implementace rozhraní

IPermission.Demand()

Vyvolá za SecurityException běhu, pokud není splněn požadavek zabezpečení.Throws a SecurityException at run time if the security requirement is not met.

(Zděděno od CodeAccessPermission)
IStackWalk.Assert()

Vyhodnotí, že volající kód může přistupovat k prostředku identifikovanému aktuálním objektem oprávnění, a to i v případě, že by volajícím vyšším v zásobníku nebyla udělena oprávnění pro přístup k prostředku.Asserts that the calling code can access the resource identified by the current permission object, even if callers higher in the stack have not been granted permission to access the resource.

(Zděděno od CodeAccessPermission)
IStackWalk.Demand()

Určuje dobu běhu, zda mají všichni volající v zásobníku volání udělené oprávnění určené aktuálním objektem oprávnění.Determines at run time whether all callers in the call stack have been granted the permission specified by the current permission object.

(Zděděno od CodeAccessPermission)
IStackWalk.Deny()

Způsobí Demand() , že každý pro aktuální objekt, který projde volajícím kódem, selže.Causes every Demand() for the current object that passes through the calling code to fail.

(Zděděno od CodeAccessPermission)
IStackWalk.PermitOnly()

Způsobí Demand() , že všechny objekty kromě aktuálního, který předává volající kód, selžou, i v případě, že byl kód vyšší v zásobníku volání udělen oprávnění pro přístup k jiným prostředkům.Causes every Demand() for all objects except the current one that pass through the calling code to fail, even if code higher in the call stack has been granted permission to access other resources.

(Zděděno od CodeAccessPermission)

Platí pro

Viz také