WebPermission Classe
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
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
[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
- 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 de WebPermission. Por fim, a lista de conexão e aceita é 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.
Crie uma WebPermission instância chamando seu construtor usando um dos seguintes conjuntos de parâmetros:
Sem parâmetros. O valor padrão PermissionState é None.
Um PermissionState. Especifique para Unrestricted permitir que qualquer URI seja usado na classe de destino ou None para permitir o acesso somente a URIs que você especificar por meio do uso do AddPermission método .
Um NetworkAccess valor e uma cadeia de caracteres de URI. O URI especificado tem permissões concedidas pelo NetworkAccess valor .
Uma NetworkAccess expressão regular de especificador e URI.
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 a chamada 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
As informações de nome de usuário e porta padrão são removidas do antes da Uri 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, todas as entradas Urifalharão em corresponder à 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. |