FileIOPermission Classe

Definição

Cuidado

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

Controla a capacidade de acessar arquivos e pastas. Essa classe não pode ser herdada.

public ref class FileIOPermission sealed : System::Security::CodeAccessPermission, System::Security::Permissions::IUnrestrictedPermission
public sealed class FileIOPermission : 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 FileIOPermission : 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
type FileIOPermission = 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 FileIOPermission = class
    inherit CodeAccessPermission
    interface 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

Exemplos

Os exemplos a seguir ilustram o código que usa 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. Em seguida, o exemplo de código exige a permissão para determinar se o aplicativo tem permissão para ler os arquivos.

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. Read e Write representam as permissões de arquivo/pasta, conforme descrito anteriormente. 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.

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

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.

Essa permissão distingue entre os quatro tipos de acesso de E/S de arquivo fornecidos por 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.

  • Write: acesso de gravação ao conteúdo do arquivo ou acesso para alterar informações sobre o arquivo, como seu nome. Também permite a exclusão e a substituição.

  • Append: capacidade de gravar somente no final de um arquivo. Não há capacidade de ler.

  • PathDiscovery: acesso às informações no próprio caminho. 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. Esse valor não concede acesso a arquivos ou pastas representadas pelo caminho.

Observação

Dar Write acesso a um assembly é semelhante a conceder-lhe confiança total. Se um aplicativo não deve gravar no sistema de arquivos, ele não deve ter Write acesso.

Todas essas permissões são independentes, o que significa que os direitos de um não implicam direitos a outro. Por exemplo, Write a permissão não implica permissão para Read ou 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. A permissão de arquivo é definida em termos de caminhos absolutos canônicos; as chamadas sempre devem ser feitas com caminhos de arquivo canônicos.

FileIOPermission descreve operações protegidas em arquivos e pastas. A File classe ajuda a fornecer acesso seguro a arquivos e pastas. O marcar de acesso de segurança é executado quando o identificador para o arquivo é criado. Ao fazer o marcar no momento da criação, o impacto no desempenho da marcar de segurança é minimizado. Abrir um arquivo acontece uma vez, enquanto a leitura e a gravação podem ocorrer várias vezes. Depois que o arquivo for aberto, nenhuma verificação adicional será feita. Se o objeto for passado para um chamador não confiável, ele poderá ser usado incorretamente. Por exemplo, os identificadores de arquivo não devem ser armazenados em estáticas globais públicas em que o código com menos permissão possa acessá-los.

FileIOPermissionAccess especifica ações que podem ser executadas no arquivo ou pasta. Além disso, essas 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 arquivos que ela contém, bem como acesso a todos os arquivos e pastas em 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 por diante.

Observação

Em versões do .NET Framework antes do .NET Framework 4, você pode usar o CodeAccessPermission.Deny método para impedir o acesso inadvertido aos recursos do sistema por código confiável. Deny agora está obsoleto e o acesso aos recursos agora é determinado exclusivamente pelo conjunto de permissões concedido para um assembly. Para limitar o acesso a arquivos, você deve executar código parcialmente confiável em uma área restrita e atribuir a ele permissões somente aos recursos que o código tem permissão para acessar. 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.

Construtores

FileIOPermission(FileIOPermissionAccess, AccessControlActions, String)
Obsoleto.

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.

FileIOPermission(FileIOPermissionAccess, AccessControlActions, String[])
Obsoleto.

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.

FileIOPermission(FileIOPermissionAccess, String)
Obsoleto.

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

FileIOPermission(FileIOPermissionAccess, String[])
Obsoleto.

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

FileIOPermission(PermissionState)
Obsoleto.

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

Propriedades

AllFiles
Obsoleto.

Obtém ou define o acesso permitido para todos os arquivos.

AllLocalFiles
Obsoleto.

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

Métodos

AddPathList(FileIOPermissionAccess, String)
Obsoleto.

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

AddPathList(FileIOPermissionAccess, String[])
Obsoleto.

Adiciona acesso aos arquivos e diretórios especificados ao estado existente da permissão.

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 e retorna uma cópia idêntica da permissão atual.

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 FileIOPermission especificado é igual ao FileIOPermission atual.

Equals(Object)
Obsoleto.

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

(Herdado de CodeAccessPermission)
FromXml(SecurityElement)
Obsoleto.

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

GetHashCode()
Obsoleto.

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.

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)
GetPathList(FileIOPermissionAccess)
Obsoleto.

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

GetType()
Obsoleto.

Obtém o Type da instância atual.

(Herdado de Object)
Intersect(IPermission)
Obsoleto.

Cria e retorna uma permissão que é a interseção de permissão atual e da permissão especificada.

IsSubsetOf(IPermission)
Obsoleto.

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

IsUnrestricted()
Obsoleto.

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

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)
SetPathList(FileIOPermissionAccess, String)
Obsoleto.

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

SetPathList(FileIOPermissionAccess, String[])
Obsoleto.

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

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 XML da permissão e de seu estado atual.

Union(IPermission)
Obsoleto.

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

Aplica-se a

Confira também