FileIOPermission Classe

Definição

Controla a capacidade de aceder a ficheiros e pastas. Esta classe não pode ser herdada.

public ref class FileIOPermission sealed : System::Security::CodeAccessPermission, System::Security::Permissions::IUnrestrictedPermission
[System.Serializable]
public sealed class FileIOPermission : System.Security.CodeAccessPermission, System.Security.Permissions.IUnrestrictedPermission
[System.Serializable]
[System.Runtime.InteropServices.ComVisible(true)]
public sealed class FileIOPermission : System.Security.CodeAccessPermission, System.Security.Permissions.IUnrestrictedPermission
[<System.Serializable>]
type FileIOPermission = class
    inherit CodeAccessPermission
    interface IUnrestrictedPermission
[<System.Serializable>]
[<System.Runtime.InteropServices.ComVisible(true)>]
type FileIOPermission = class
    inherit CodeAccessPermission
    interface IUnrestrictedPermission
Public NotInheritable Class FileIOPermission
Inherits CodeAccessPermission
Implements IUnrestrictedPermission
Herança
FileIOPermission
Atributos
Implementações

Observações

Atenção

O CAS (Code Access Security) foi preterido em todas as versões do .NET Framework e do .NET. As versões recentes do .NET não respeitam as anotações do CAS e produzem erros se as APIs relacionadas ao CAS forem usadas. Os desenvolvedores devem procurar meios alternativos de realizar tarefas de segurança.

Esta permissão distingue entre os seguintes quatro tipos de acesso a IO de ficheiros fornecidos por:FileIOPermissionAccess

  • Read: Acesso de leitura ao conteúdo do ficheiro ou acesso a informações sobre o ficheiro, como o seu comprimento ou o tempo da última modificação.

  • Write: Escrever acesso ao conteúdo do ficheiro ou aceder para alterar informações sobre o ficheiro, como o seu nome. Também permite apagar e sobrescrever.

  • Append: Capacidade de escrever apenas até ao final de um ficheiro. Sem capacidade de ler.

  • PathDiscovery: Acesso à informação no próprio caminho. Isto ajuda a proteger informações sensíveis no caminho, como nomes de utilizador, bem como informações sobre a estrutura de diretórios que são reveladas no caminho. Este valor não concede acesso a ficheiros ou pastas representados pelo caminho.

Note

Dar Write acesso a uma assembleia é semelhante a conceder-lhe total confiança. Se uma aplicação não deve escrever no sistema de ficheiros, não deve ter Write acesso.

Todas estas permissões são independentes, o que significa que direitos sobre uma não implicam direitos sobre outra. Por exemplo, Write permissão não implica permissão para Read ou Append. Se forem desejadas mais do que uma permissão, podem ser combinadas usando um OR bit a bit, como mostrado no exemplo de código que se segue. A permissão de ficheiro é definida em termos de caminhos absolutos canónicos; as chamadas devem sempre ser feitas com caminhos de ficheiros canónicos.

FileIOPermission descreve operações protegidas em ficheiros e pastas. A File aula ajuda a fornecer acesso seguro a ficheiros e pastas. A verificação de acesso de segurança é realizada quando o handle do ficheiro é criado. Ao fazer a verificação no momento da criação, o impacto no desempenho da verificação de segurança é minimizado. Abrir um ficheiro acontece uma vez, enquanto ler e escrever podem acontecer várias vezes. Depois de aberto o ficheiro, não são feitas mais verificações. Se o objeto for passado para um chamador não confiável, pode ser mal utilizado. Por exemplo, os handles de ficheiros não devem ser armazenados em estáticas globais públicas onde código com menos permissão pode aceder a eles.

FileIOPermissionAccess especifica ações que podem ser realizadas no ficheiro ou pasta. Além disso, estas ações podem ser combinadas usando um OR bit a bit para formar instâncias complexas.

O acesso a uma pasta implica acesso a todos os ficheiros que contém, bem como acesso a todos os ficheiros e pastas nas suas subpastas. Por exemplo, Read o acesso a C:\folder1\ implica Read acesso a C:\folder1\file1.txt, C:\folder1\folder2\, C:\folder1\folder2\file2.txt, e assim sucessivamente.

Note

Nas versões do .NET Framework anteriores ao .NET Framework 4, podias usar o método CodeAccessPermission.Deny para evitar o acesso inadvertido aos recursos do sistema por código de confiança. Deny está agora obsoleto, e o acesso aos recursos é agora determinado unicamente pelo conjunto de permissões concedido para uma assembleia. Para limitar o acesso a ficheiros, deve executar código parcialmente confiável num sandbox e atribuir-lhe permissões apenas a recursos que o código pode aceder. Para informações sobre como executar uma aplicação num sandbox, veja Como: Executar Código Parcialmente Confiável num Sandbox.

Construtores

Name Description
FileIOPermission(FileIOPermissionAccess, AccessControlActions, String)

Inicializa uma nova instância da FileIOPermission classe com o acesso especificado ao ficheiro ou diretório designado e os direitos de acesso especificados à informação de controlo de ficheiros.

FileIOPermission(FileIOPermissionAccess, AccessControlActions, String[])

Inicializa uma nova instância da FileIOPermission classe com o acesso especificado aos ficheiros e diretórios designados e os direitos de acesso especificados à informação de controlo de ficheiros.

FileIOPermission(FileIOPermissionAccess, String)

Inicializa uma nova instância da FileIOPermission classe com o acesso especificado ao ficheiro ou diretório designado.

FileIOPermission(FileIOPermissionAccess, String[])

Inicializa uma nova instância da FileIOPermission classe com o acesso especificado aos ficheiros e diretórios designados.

FileIOPermission(PermissionState)

Inicializa uma nova instância da FileIOPermission classe com permissão totalmente restrita ou irrestrita, conforme especificado.

Propriedades

Name Description
AllFiles

Obtém ou define o acesso permitido a todos os ficheiros.

AllLocalFiles

Obtém ou define o acesso permitido a todos os ficheiros locais.

Métodos

Name Description
AddPathList(FileIOPermissionAccess, String)

Adiciona acesso para o ficheiro ou diretório especificado ao estado existente da permissão.

AddPathList(FileIOPermissionAccess, String[])

Adiciona acesso para os ficheiros e diretórios especificados ao estado existente da permissão.

Assert()

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

(Herdado de CodeAccessPermission)
Copy()

Cria e devolve uma cópia idêntica da permissão atual.

Demand()

Força a SecurityException em tempo de execução se todos os chamadores superiores na pilha de chamadas não tiverem recebido a permissão especificada pela instância atual.

(Herdado de CodeAccessPermission)
Deny()
Obsoleto.

Impede que os chamadores mais acima na pilha de chamadas usem o código que chama este método para aceder ao recurso especificado pela instância atual.

(Herdado de CodeAccessPermission)
Equals(Object)

Determina se o objeto especificado FileIOPermission é igual à corrente FileIOPermission.

FromXml(SecurityElement)

Reconstrói uma permissão com um estado especificado a partir de uma codificação XML.

GetHashCode()

Obtém um código hash para o FileIOPermission objeto adequado para uso em algoritmos de hash e estruturas de dados, como uma tabela hash.

GetPathList(FileIOPermissionAccess)

Obtém todos os ficheiros e diretórios com o arquivo especificado FileIOPermissionAccess.

GetType()

Obtém o Type da instância atual.

(Herdado de Object)
Intersect(IPermission)

Cria e devolve uma permissão que é a interseção entre a permissão atual e a permissão especificada.

IsSubsetOf(IPermission)

Determina se a permissão atual é um subconjunto da permissão especificada.

IsUnrestricted()

Devolve um valor que indica se a permissão atual é irrestrita.

MemberwiseClone()

Cria uma cópia superficial do atual Object.

(Herdado de Object)
PermitOnly()

Impede que os chamadores mais acima na pilha de chamadas usem o código que chama este método para aceder a todos os recursos, exceto ao recurso especificado pela instância atual.

(Herdado de CodeAccessPermission)
SetPathList(FileIOPermissionAccess, String)

Define o acesso especificado ao ficheiro ou diretório especificado, substituindo o estado existente da permissão.

SetPathList(FileIOPermissionAccess, String[])

Define o acesso especificado aos ficheiros e diretórios especificados, substituindo o estado atual do acesso especificado pelo novo conjunto de caminhos.

ToString()

Cria e devolve uma representação em cadeia do objeto de permissão atual.

(Herdado de CodeAccessPermission)
ToXml()

Cria uma codificação XML da permissão e do seu estado atual.

Union(IPermission)

Cria uma permissão que é a união da permissão atual e da permissão especificada.

Aplica-se a

Ver também