WebPermission Classe

Definição

Cuidado

Code Access Security is not supported or honored by the runtime.

Controla os direitos de acesso a recursos de Internet 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
Herança
Atributos
Implementações

Exemplos

O exemplo a seguir demonstra como criar uma nova instância do WebPermission usando um Regex. Hosts adicionais são adicionados à lista de conexão e aceitação de WebPermission. Por fim, a lista de conexão e aceitação é exibida no 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

Comentários

Cuidado

O CAS (Segurança de Acesso do Código) foi preterido em todas as versões do .NET Framework e do .NET. As versões recentes do .NET não aceitam anotações de CAS e produzem erros caso as APIs relacionadas ao CAS sejam usadas. Os desenvolvedores devem buscar meios alternativos de realizar tarefas de segurança.

WebPermission fornece um conjunto de métodos e propriedades para controlar o acesso aos recursos da Internet. Você pode usar um WebPermission para fornecer acesso restrito ou irrestrito ao recurso, com base no PermissionState que é definido quando o WebPermission é criado.

Create uma WebPermission instância chamando seu construtor usando um dos seguintes conjuntos de parâmetros:

O ConnectList e AcceptList mantêm os URIs aos quais você concedeu permissão de acesso. Para adicionar um URI a qualquer uma dessas listas, use AddPermission. Se você passar Accept como o NetworkAccess parâmetro , o URI será adicionado ao AcceptList. WebPermission permitirá conexões com sua classe de destino com URIs correspondentes ao AcceptList.

Cuidado

Para negar o acesso a um recurso da Internet, você deve negar o acesso a todos os caminhos possíveis para esse recurso. Isso requer chamar WebPermission.WebPermission com o parâmetro de estado definido como Deny. Uma abordagem melhor é permitir o acesso somente ao recurso específico. Para obter mais informações sobre esse assunto, consulte o tópico Usando o método Deny .

Observação

Você precisa negar o acesso usando apenas o caminho canônico do recurso. Não é necessário usar todas as variações sintáticas do caminho.

Observação

O nome de usuário e as informações de porta padrão são removidos do Uri antes da comparação com o argumento de expressão regular que é fornecido ao WebPermission(NetworkAccess, Regex) construtor. Se a expressão regular contiver informações do usuário ou o número da porta padrão, todos os s de entrada Urinão corresponderão à expressão regular.

Construtores

WebPermission()
Obsoleto.

Cria uma nova instância da classe WebPermission.

WebPermission(NetworkAccess, Regex)
Obsoleto.

Inicializa uma nova instância da classe WebPermission com os direitos de acesso especificados para a expressão regular do URI indicado.

WebPermission(NetworkAccess, String)
Obsoleto.

Inicializa uma nova instância da classe WebPermission com direitos de acesso especificado para o URI indicado.

WebPermission(PermissionState)
Obsoleto.

Cria uma nova instância da classe WebPermission que transmite todas as demandas ou falha todas as demandas.

Propriedades

AcceptList
Obsoleto.

Essa propriedade retorna uma enumeração de permissões de aceitação única mantidas por este WebPermission. Os tipos de objetos possíveis contidos na enumeração retornada são String e Regex.

ConnectList
Obsoleto.

Essa propriedade retorna uma enumeração de permissões de conexão única mantidas por este WebPermission. Os tipos de objetos possíveis contidos na enumeração retornada são String e Regex.

Métodos

AddPermission(NetworkAccess, Regex)
Obsoleto.

Adiciona o URI especificado com os direitos de acesso especificados para o WebPermission atual.

AddPermission(NetworkAccess, String)
Obsoleto.

Adiciona a cadeia de caracteres do URI com os direitos de acesso especificados para o WebPermission atual.

Assert()
Obsoleto.

Declara que o código de chamada pode acessar o recurso protegido por uma demanda de permissão através do código que chama este método, mesmo que os chamadores na pilha não tenham recebido permissão para acessar o recurso. Usar Assert() pode criar problemas de segurança.

(Herdado de CodeAccessPermission)
Copy()
Obsoleto.

Cria uma cópia de um WebPermission.

Demand()
Obsoleto.

Força um SecurityException no tempo de execução se todos os chamadores no topo da pilha de chamadas não receberam as permissões especificadas pela instância atual.

(Herdado de CodeAccessPermission)
Deny()
Obsoleto.
Obsoleto.

Impede que os chamadores no nível superior da pilha de chamadas usem o código que chama esse método para acessar o recurso especificado pela instância atual.

(Herdado de CodeAccessPermission)
Equals(Object)
Obsoleto.

Determina se o objeto CodeAccessPermission especificado é igual ao CodeAccessPermission atual.

(Herdado de CodeAccessPermission)
FromXml(SecurityElement)
Obsoleto.

Reconstrói um WebPermission de uma codificação XML.

GetHashCode()
Obsoleto.

Obtém um código hash para o objeto CodeAccessPermission atual, adequado para algoritmos de hash e estruturas de dados, tais como uma tabela de hash.

(Herdado de CodeAccessPermission)
GetType()
Obsoleto.

Obtém o Type da instância atual.

(Herdado de Object)
Intersect(IPermission)
Obsoleto.

Retorna a interseção lógica de duas instâncias WebPermission.

IsSubsetOf(IPermission)
Obsoleto.

Determina se o WebPermission atual é um subconjunto do objeto especificado.

IsUnrestricted()
Obsoleto.

Verifica o estado geral das permissões de WebPermission.

MemberwiseClone()
Obsoleto.

Cria uma cópia superficial do Object atual.

(Herdado de Object)
PermitOnly()
Obsoleto.

Impede que os chamadores no topo da pilha de chamadas usem o código que chama esse método para acessar todos os recursos, com exceção do recurso especificado pela instância atual.

(Herdado de CodeAccessPermission)
ToString()
Obsoleto.

Cria e retorna uma representação de cadeia de caracteres do objeto de permissão atual.

(Herdado de CodeAccessPermission)
ToXml()
Obsoleto.

Cria uma codificação de XML de um WebPermission e seu estado atual.

Union(IPermission)
Obsoleto.

Retorna a união lógica entre duas instâncias da classe WebPermission.

Aplica-se a

Confira também