FileIOPermission Classe

Definição

Controla a capacidade de acessar arquivos e pastas.Controls the ability to access files and folders. Esta classe não pode ser herdada.This class cannot be inherited.

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

Exemplos

Os exemplos a seguir ilustram o código que usa FileIOPermission.The following examples illustrate code that uses FileIOPermission. Após as duas linhas de código a seguir, o objeto f representa a permissão para ler todos os arquivos nos discos locais do computador cliente.After the following two lines of code, the object f represents permission to read all files on the client computer's local disks. Em seguida, o exemplo de código exige a permissão para determinar se o aplicativo tem permissão para ler os arquivos.The code example then demands the permission to determine whether the application has permission to read the files.

FileIOPermission^ f = gcnew FileIOPermission( PermissionState::None );
f->AllLocalFiles = FileIOPermissionAccess::Read;
try
{
    f->Demand();
}
catch (SecurityException^ s)
{
    Console::WriteLine(s->Message);
}
FileIOPermission f = new FileIOPermission(PermissionState.None);
f.AllLocalFiles = FileIOPermissionAccess.Read;
try
{
    f.Demand();
}
catch (SecurityException s)
{
    Console.WriteLine(s.Message);
}

Dim f As New FileIOPermission(PermissionState.None)
f.AllLocalFiles = FileIOPermissionAccess.Read
Try
    f.Demand()
Catch s As SecurityException
    Console.WriteLine(s.Message)
End Try

Após as duas linhas de código a seguir, o objeto f2 representa permissões para ler C:\ test_r e ler e gravar em C:\example\out.txt.After the following two lines of code, the object f2 represents permissions to read C:\test_r and read and write to C:\example\out.txt. Read e Write representam as permissões de arquivo/pasta conforme descrito anteriormente.Read and Write represent the file/folder permissions as previously described. Depois de criar a permissão, o código exige a permissão para determinar se o aplicativo tem o direito de ler e gravar no arquivo.After creating the permission, the code demands the permission to determine whether the application has the right to read and write to the file.

FileIOPermission^ f2 = gcnew FileIOPermission( FileIOPermissionAccess::Read,"C:\\test_r" );
f2->AddPathList( (FileIOPermissionAccess) (FileIOPermissionAccess::Write | FileIOPermissionAccess::Read), "C:\\example\\out.txt" );
try
{
    f2->Demand();
}
catch (SecurityException^ s)
{
    Console::WriteLine(s->Message);
}
FileIOPermission f2 = new FileIOPermission(FileIOPermissionAccess.Read, "C:\\test_r");
f2.AddPathList(FileIOPermissionAccess.Write | FileIOPermissionAccess.Read, "C:\\example\\out.txt");
try
{
    f2.Demand();
}
catch (SecurityException s)
{
    Console.WriteLine(s.Message);
}
Dim f2 As New FileIOPermission(FileIOPermissionAccess.Read, "C:\test_r")
f2.AddPathList(FileIOPermissionAccess.Write Or FileIOPermissionAccess.Read, "C:\example\out.txt")
Try
    f2.Demand()
Catch s As SecurityException
    Console.WriteLine(s.Message)
End Try

Comentários

Essa permissão distingue entre os quatro tipos de acesso de e/s de arquivo a seguir fornecidos pelo FileIOPermissionAccess:This permission distinguishes between the following four types of file IO access provided by FileIOPermissionAccess:

  • Read: acesso de leitura ao conteúdo do arquivo ou acesso a informações sobre o arquivo, como seu comprimento ou hora da última modificação.Read: Read access to the contents of the file or access to information about the file, such as its length or last modification time.

  • Write: acesso de gravação ao conteúdo do arquivo ou acesso para alterar informações sobre o arquivo, como seu nome.Write: Write access to the contents of the file or access to change information about the file, such as its name. Também permite exclusão e substituição.Also allows for deletion and overwriting.

  • Append: capacidade de gravar somente no final de um arquivo.Append: Ability to write to the end of a file only. Sem capacidade de leitura.No ability to read.

  • PathDiscovery: acesso às informações no próprio caminho.PathDiscovery: Access to the information in the path itself. Isso ajuda a proteger informações confidenciais no caminho, como nomes de usuário, bem como informações sobre a estrutura de diretório que é revelada no caminho.This helps protect sensitive information in the path, such as user names, as well as information about the directory structure that is revealed in the path. Esse valor não concede acesso a arquivos ou pastas representadas pelo caminho.This value does not grant access to files or folders represented by the path.

Observação

Dar acesso Write a um assembly é semelhante a conceder confiança total.Giving Write access to an assembly is similar to granting it full trust. Se um aplicativo não deve gravar no sistema de arquivos, ele não deve ter acesso Write.If an application should not write to the file system, it should not have Write access.

Todas essas permissões são independentes, o que significa que os direitos para um não implicam nos direitos de outro.All these permissions are independent, meaning that rights to one do not imply rights to another. Por exemplo, Write permissão não implica a permissão para Read ou Append.For example, Write permission does not imply permission to Read or Append. Se mais de uma permissão for desejada, elas poderão ser combinadas usando um OR bit a bit, conforme mostrado no exemplo de código a seguir.If more than one permission is desired, they can be combined using a bitwise OR as shown in the code example that follows. A permissão File é definida em termos de caminhos absolutos canônicos; as chamadas sempre devem ser feitas com caminhos de arquivo canônicos.File permission is defined in terms of canonical absolute paths; calls should always be made with canonical file paths.

FileIOPermission descreve as operações protegidas em arquivos e pastas.FileIOPermission describes protected operations on files and folders. A classe File ajuda a fornecer acesso seguro a arquivos e pastas.The File class helps provide secure access to files and folders. A verificação de acesso de segurança é executada quando o identificador do arquivo é criado.The security access check is performed when the handle to the file is created. Ao fazer a verificação no momento da criação, o impacto no desempenho da verificação de segurança é minimizado.By doing the check at creation time, the performance impact of the security check is minimized. Abrir um arquivo ocorre uma vez, enquanto a leitura e a gravação podem ocorrer várias vezes.Opening a file happens once, while reading and writing can happen multiple times. Depois que o arquivo for aberto, nenhuma verificação adicional será feita.Once the file is opened, no further checks are done. Se o objeto for passado para um chamador não confiável, ele poderá ser usado.If the object is passed to an untrusted caller, it can be misused. Por exemplo, os identificadores de arquivo não devem ser armazenados em estáticos globais públicos em que o código com menos permissão possa acessá-los.For example, file handles should not be stored in public global statics where code with less permission can access them.

FileIOPermissionAccess especifica as ações que podem ser executadas no arquivo ou na pasta.FileIOPermissionAccess specifies actions that can be performed on the file or folder. Além disso, essas ações podem ser combinadas por meio de uma ou de instâncias complexas.In addition, these actions can be combined using a bitwise OR to form complex instances.

O acesso a uma pasta implica acesso a todos os arquivos que ele contém, bem como acesso a todos os arquivos e pastas em suas subpastas.Access to a folder implies access to all the files it contains, as well as access to all the files and folders in its subfolders. Por exemplo, Read acesso a C:\folder1\ implica Read acesso a C:\folder1\file1.txt, C:\folder1\folder2\, C:\folder1\folder2\file2.txt e assim por diante.For example, Read access to C:\folder1\ implies Read access to C:\folder1\file1.txt, C:\folder1\folder2\, C:\folder1\folder2\file2.txt, and so on.

Observação

Em versões do .NET Framework antes da .NET Framework 4.NET Framework 4, você pode usar o método CodeAccessPermission.Deny para evitar o acesso inadvertido a recursos do sistema por código confiável.In versions of the .NET Framework before the .NET Framework 4.NET Framework 4, you could use the CodeAccessPermission.Deny method to prevent inadvertent access to system resources by trusted code. Deny agora é obsoleto, e o acesso aos recursos agora é determinado exclusivamente pelo conjunto de permissões concedidas para um assembly.Deny is now obsolete, and access to resources is now determined solely by the granted permission set for an assembly. Para limitar o acesso a arquivos, você deve executar código parcialmente confiável em uma área restrita e atribuir permissões a ele somente a recursos que o código tem permissão para acessar.To limit access to files, you must run partially trusted code in a sandbox and assign it permissions only to resources that the code is allowed to access. Para obter informações sobre como executar um aplicativo em uma área restrita, consulte como: executar código parcialmente confiável em uma área restrita.For information about running an application in a sandbox, see How to: Run Partially Trusted Code in a Sandbox.

Construtores

FileIOPermission(FileIOPermissionAccess, AccessControlActions, String)

Inicializa uma nova instância da classe FileIOPermission com o acesso especificado ao arquivo ou diretório designado e os direitos de acesso especificados a informações de controle de arquivo.Initializes a new instance of the FileIOPermission class with the specified access to the designated file or directory and the specified access rights to file control information.

FileIOPermission(FileIOPermissionAccess, AccessControlActions, String[])

Inicializa uma nova instância da classe FileIOPermission com o acesso especificado aos arquivos e diretórios designados e os direitos de acesso especificados nas informações de controle de arquivo.Initializes a new instance of the FileIOPermission class with the specified access to the designated files and directories and the specified access rights to file control information.

FileIOPermission(FileIOPermissionAccess, String)

Inicializa uma nova instância da classe FileIOPermission com o acesso especificado ao arquivo ou diretório designado.Initializes a new instance of the FileIOPermission class with the specified access to the designated file or directory.

FileIOPermission(FileIOPermissionAccess, String[])

Inicializa uma nova instância da classe FileIOPermission com o acesso especificado aos arquivos ou diretórios designados.Initializes a new instance of the FileIOPermission class with the specified access to the designated files and directories.

FileIOPermission(PermissionState)

Inicializa uma nova instância da classe FileIOPermission com permissão irrestrita ou totalmente restrita, conforme especificado.Initializes a new instance of the FileIOPermission class with fully restricted or unrestricted permission as specified.

Propriedades

AllFiles

Obtém ou define o acesso permitido para todos os arquivos.Gets or sets the permitted access to all files.

AllLocalFiles

Obtém ou define o acesso permitido a todos os arquivos locais.Gets or sets the permitted access to all local files.

Métodos

AddPathList(FileIOPermissionAccess, String)

Adiciona o acesso para o arquivo ou diretório especificado ao estado existente da permissão.Adds access for the specified file or directory to the existing state of the permission.

AddPathList(FileIOPermissionAccess, String[])

Adiciona acesso aos arquivos e diretórios especificados ao estado existente da permissão.Adds access for the specified files and directories to the existing state of the permission.

Assert()

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.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. Usar Assert() pode criar problemas de segurança.Using Assert() can create security issues.

(Herdado de CodeAccessPermission)
Copy()

Cria e retorna uma cópia idêntica da permissão atual.Creates and returns an identical copy of the current permission.

Demand()

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.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.

(Herdado de CodeAccessPermission)
Deny()

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.Prevents callers higher in the call stack from using the code that calls this method to access the resource specified by the current instance.

(Herdado de CodeAccessPermission)
Equals(Object)

Determina se o objeto FileIOPermission especificado é igual ao FileIOPermission atual.Determines whether the specified FileIOPermission object is equal to the current FileIOPermission.

FromXml(SecurityElement)

Reconstrói um a permissão com um estado especificado de uma codificação XML.Reconstructs a permission with a specified state from an XML encoding.

GetHashCode()

Obtém um código hash para o objeto FileIOPermission atual, adequado para algoritmos de hash e estruturas de dados, tais como uma tabela de hash.Gets a hash code for the FileIOPermission object that is suitable for use in hashing algorithms and data structures such as a hash table.

GetPathList(FileIOPermissionAccess)

Obtém todos os arquivos e diretórios com o FileIOPermissionAccess especificado.Gets all files and directories with the specified FileIOPermissionAccess.

GetType()

Obtém o Type da instância atual.Gets the Type of the current instance.

(Herdado de Object)
Intersect(IPermission)

Cria e retorna uma permissão que é a interseção de permissão atual e da permissão especificada.Creates and returns a permission that is the intersection of the current permission and the specified permission.

IsSubsetOf(IPermission)

Determina se a permissão atual é um subconjunto da permissão especificada.Determines whether the current permission is a subset of the specified permission.

IsUnrestricted()

Retorna um valor que indica se a permissão atual é irrestrita.Returns a value indicating whether the current permission is unrestricted.

MemberwiseClone()

Cria uma cópia superficial do Object atual.Creates a shallow copy of the current Object.

(Herdado de Object)
PermitOnly()

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.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.

(Herdado de CodeAccessPermission)
SetPathList(FileIOPermissionAccess, String)

Define o acesso especificado ao arquivo ou diretório especificado, substituindo o estado existente da permissão.Sets the specified access to the specified file or directory, replacing the existing state of the permission.

SetPathList(FileIOPermissionAccess, String[])

Define o acesso especificado aos arquivos e diretórios especificados, substituindo o estado atual para o acesso especificado pelo novo conjunto de caminhos.Sets the specified access to the specified files and directories, replacing the current state for the specified access with the new set of paths.

ToString()

Cria e retorna uma representação de cadeia de caracteres do objeto de permissão atual.Creates and returns a string representation of the current permission object.

(Herdado de CodeAccessPermission)
ToXml()

Cria uma codificação XML da permissão e de seu estado atual.Creates an XML encoding of the permission and its current state.

Union(IPermission)

Cria uma permissão que é a união entre a permissão atual e a permissão especificada.Creates a permission that is the union of the current permission and the specified permission.

Implantações explícitas de interface

IPermission.Demand() (Herdado de CodeAccessPermission)
IStackWalk.Assert() (Herdado de CodeAccessPermission)
IStackWalk.Demand() (Herdado de CodeAccessPermission)
IStackWalk.Deny() (Herdado de CodeAccessPermission)
IStackWalk.PermitOnly() (Herdado de CodeAccessPermission)

Aplica-se a

Veja também