Share via


armazenamentos isolados

Um armazenamento isolado é um mecanismo de armazenamento de dados que fornece isolamento e segurança ao definir maneiras padronizadas de associar códigos com dados salvos. A padronização fornece outros benefícios também. Os administradores podem usar as ferramentas desenvolvidas para manipular armazenamentos isolados para configurar espaço de armazenamento de arquivos, definir diretivas de segurança e excluir dados não utilizados. Com o armazenamento isolado, seu código não precisa mais caminhos exclusivos para especificar locais de seguras no sistema de arquivos e dados são protegidos contra outros aplicativos que só tenham isolado o acesso ao armazenamento. Informações embutidos que indica onde está localizada a área de armazenamento do aplicativo são desnecessárias.

Este tópico contém as seções a seguir:

  • Lojas e compartimentos de dados

  • Acesso seguro

  • Locais de armazenamento isolado

  • Criar, enumerar e excluir o armazenamento isolado

  • Cenários para Armazenamento Isolado

  • Tópicos relacionados

  • Referência

Lojas e compartimentos de dados

Quando um aplicativo armazenar dados em um arquivo, o local de armazenamento e o nome do arquivo deve ser escolhido cuidadosamente para minimizar a possibilidade de que o local de armazenamento será conhecido em outro aplicativo e, portanto, ficará vulnerável à corrupção. Sem um sistema padrão para gerenciar esses problemas, o desenvolvimento de técnicas ad hoc que minimizam conflitos de armazenamento pode ser complexo e os resultados podem ser não confiáveis.

Com armazenamento isolado, os dados são sempre isolados pelo usuário e pelo conjunto de módulos (assembly). Credenciais tais como a origem ou o nome forte do conjunto de módulos (assembly) determinam a identidade do conjunto. Os dados também podem ser isolados por domínio de aplicativo, usando credenciais semelhantes.

Ao usar armazenamento isolado, aplicativos salvar dados de um compartimento de dados exclusivos que está associado a algum aspecto da identidade do código, como seu editor ou assinatura. O compartimento de dados é uma abstração, não um local específico de armazenamento; ele consiste em um ou mais arquivos de armazenamento isolados, chamados de armazenamentos, que contêm os locais reais dos Diretórios onde estão armazenados os dados. Por exemplo, um aplicativo pode ter um compartimento de dados associado a ele, e um diretório no sistema de arquivos implementaria a loja que realmente preserva os dados para o aplicativo. Os dados salvos no armazenamento podem ser qualquer tipo de dados, desde informações de preferências do usuário até o estado do aplicativo. Para o desenvolvedor, o local do compartimento de dados é transparente; armazenamentos geralmente residem no cliente, mas um aplicativo para servidores poderia usar armazenamentos isolados para armazenar informações ao representar o usuário em cujo nome está funcionando. Armazenamentos Isolados também podem armazenar informações em um servidor com um perfil móvel do usuário para que as informações viajem com o usuário móvel.

Back to top

Acesso seguro

Usar o armazenamento isolado permite que aplicativos parcialmente confiáveis armazenem dados de uma maneira que é controlada pela diretiva de segurança do computador. Isso é especialmente útil para componentes descarregados que um usuário pode executar com cautela. Diretiva de segurança raramente concede a esse tipo de permissão de código para acessar o sistema de arquivos usando mecanismos padrão de e/S. No entanto, por padrão, o código em execução no computador local, uma rede local ou Internet é concedido o direito de usar armazenamento isolado.

Os administradores podem limitar a quantidade de armazenamento isolado que um aplicativo ou usuário tem disponível, com base em um nível de confiança apropriado. Além disso, os administradores podem remover dados persistentes de um usuário completamente. Para criar ou acessar um armazenamento isolado, o código deve receber o IsolatedStorageFilePermission apropriado.

Para acessar um armazenamento isolado, o código deve ter todos os direitos do sistema operacional da plataforma nativa necessários. Por exemplo, no Windows 2000 as listas de controle de acesso (ACLs) que controlam quais usuários têm os direitos necessários para usar o sistema de arquivos devem ser satisfeitas. .Aplicativos do NET Framework já tem os direitos de sistema operacional para acessar o armazenamento isolado, a menos que eles executam a representação de (específico da plataforma). Nesse caso, o aplicativo é responsável por garantir que a identidade do usuário representado tenha os direitos adequados do sistema operacional para acessar o armazenamento isolado. Esse acesso oferece uma maneira conveniente de códigos que são executados ou baixados a partir da Web de ler e gravar em uma área de armazenamento relacionada a um usuário específico.

Back to top

Locais de armazenamento isolado

Às vezes é útil verificar se uma alteração para o armazenamento isolado, usando o sistema de arquivos do sistema operacional. Os desenvolvedores podem também precisar conhecer a localização dos arquivos de armazenamento isolado. Esse local é diferente dependendo do sistema operacional. A tabela a seguir mostra os locais raiz onde um armazenamento isolado é criado em alguns sistemas operacionais comuns. Procure diretórios Microsoft\IsolatedStorage neste local raiz. Você deve alterar as configurações de pasta para exibir arquivos e pastas ocultos para ver um armazenamento Isolado no sistema de arquivos.

Sistema operacional

Localização no sistema de arquivos

O Windows 98, Windows Me - perfis de usuário não habilitados

Armazenamentos ativados para uso móvel =

<SYSTEMROOT>\Application Data

Armazenamentos não móveis = WINDOWS\Local Settings\Application Data

Windows 98, Windows Me - perfis de usuário habilitados

Armazenamentos ativados para uso móvel =

<SYSTEMROOT>\Profiles\<user>\Application Data

Armazenamentos não móveis = Windows\Local Settings\Application Data

Windows NT 4.0

<SYSTEMROOT>\Profiles\<user>\Application Data

Windows NT 4.0 - Service Pack 4

Armazenamentos ativados para uso móvel =

<SYSTEMROOT>\Profiles\<user>\Application Data

Armazenamentos não móveis =

<SYSTEMROOT>\Profiles\<user>\Local Settings\Application Data

Atualizar o Windows 2000, Windows XP, Windows Server 2003 - Windows NT 4.0

Armazenamentos ativados para uso móvel =

<SYSTEMROOT>\Profiles\<user>\Application Data

Armazenamentos não móveis =

<SYSTEMROOT>\Profiles\<user>\Local Settings\Application Data

Windows 2000 - limpar instalação (e atualizações do Windows 98 e Windows NT 3.51)

Armazenamentos ativados para uso móvel =

<SYSTEMDRIVE>\Documents and Settings\<user>\Application Data

Armazenamentos não móveis =

<SYSTEMDRIVE>\Documents and Settings\<user>\Local Settings\Application Data

Windows XP, Windows Server 2003 - instalação limpa (e atualizações do Windows 2000 e Windows 98)

Armazenamentos ativados para uso móvel =

<SYSTEMDRIVE>\Documents and Settings\<user>\Application Data

Armazenamentos não móveis =

<SYSTEMDRIVE>\Documents and Settings\<user>\Local Settings\Application Data

Windows Vista

Armazenamentos ativados para uso móvel =

\appdata\roaming. de \Users\ <user> <SYSTEMDRIVE>

Armazenamentos não móveis =

\AppData\Local de \Users\ <user> <SYSTEMDRIVE>

Back to top

Criar, enumerar e excluir o armazenamento isolado

Três classes principais são fornecidas para ajudá-lo a executar tarefas que envolvem o armazenamento isolado:

As classes de armazenamento isolado permitem que você crie, enumere e exclua o armazenamento isolado. Os métodos para executar essas tarefas estão disponíveis através do IsolatedStorageFile objeto. Algumas operações exigem que você tenha a IsolatedStorageFilePermission que representa o direito para administrar o armazenamento isolado; você também pode precisar ter direitos do sistema operacional para acessar o arquivo ou diretório. Na lista de controle de acesso de Windows NT da Microsoft, Microsoft Windows 2000, Windows XP e Windows Vista, as configurações de (ACL) no arquivo podem impedir que você acessar o armazenamento isolado. A ferramenta de armazenamento isolado, Storeadm.exe, também pode ser usada para armazenamento simples de gerenciamento, como listar ou excluir todos os armazenamentos para o usuário atual.

Para uma série de exemplos que demonstram tarefas comuns de armazenamento isolado, consulte os tópicos de instruções listados na Tópicos relacionados. Cada exemplo possui um arquivo de origem que ilustra uma tarefa específica. As instruções para configurar, compilar e executar são incluídas na página principal de cada exemplo. Os exemplos são fornecidos apenas em C#.

Back to top

Cenários para Armazenamento Isolado

O armazenamento isolado é útil em muitas situações. Cinco dos cenários mais prontamente identificáveis são descritos a seguir:

  • Controles baixados. Controles de código gerenciados baixados pela Internet não têm permissão para gravar no disco rígido por meio de classes normais de E/S, mas eles podem usar o armazenamento isolado para persistir as configurações do usuário e o estado dos aplicativos.

  • Armazenamento Compartilhado de Componentes Componentes que são compartilhados entre aplicativos podem usar o armazenamento isolado para fornecer acesso controlado a armazenamento de dados.

  • Armazenamento no servidor. Aplicativos de servidor podem usar o armazenamento isolado para fornecer armazenamento individual para um grande número de usuários que estejam realizando solicitações ao aplicativo. Pelo fato do armazenamento isolado ser sempre separado por usuário, o servidor deve representar o usuário que fez a solicitação. Nesse caso, os dados são isolados com base na identidade do principal, que é a mesma identidade que o aplicativo usa para fazer a distinção entre os seus usuários.

  • Móvel. Os aplicativos também podem usar o armazenamento isolado com perfis de usuário móvel. Isso permite que armazenamentos isolados de um usuário se movimentem com o perfil.

Embora o armazenamento isolado seja bem-adequado para os cenários descritos anteriormente, há alguns casos em que você deve não utilizar o armazenamento isolado:

  • Não use o armazenamento isolado para armazenar segredos de alto valor, como, por exemplo, sem criptografia de chaves ou senhas, pois o armazenamento isolado não está protegido do código altamente confiável, de código não gerenciado ou de usuários confiáveis do computador.

  • Não use o armazenamento isolado para armazenar o código.

  • Não use o armazenamento isolado para armazenar definições de configuração e implantação, controlam o que os administradores. (As preferências do usuário não são consideradas como definições de configuração, pois os administradores não as controlam.)

Muitos dos aplicativos de hoje usam um banco de dados para armazenar e isolar os dados, nesse caso uma ou mais linhas em um banco de dados podem representar o armazenamento para um usuário específico. Você pode optar por usar armazenamento isolado em vez de um banco de dados quando o número de usuários é pequeno, quando as despesas no uso de um banco de dados é significativa, ou quando não existe nenhum recurso de banco de dados. Além disso, quando o aplicativo requer um armazenamento que seja mais flexível e complexo do que o que fornece uma linha em um banco de dados, o armazenamento isolado pode fornecer uma alternativa viável.

Back to top

Tópicos relacionados

Título

Descrição

Tipos de Isolamento

Descreve os diferentes tipos de isolamento.

Como: Obter armazenamentos para o armazenamento isolado

Fornece um exemplo de uso da classe IsolatedStorageFile para obter um armazenamento isolado por usuário e conjunto de módulos (assembly).

Como: Enumerar os repositórios para armazenamento isolado

Mostra como usar o IsolatedStorageFile.GetEnumerator método para calcular o tamanho de todo o armazenamento isolado para o usuário.

Como: Armazenamentos de exclusão no armazenamento isolado

Mostra como usar o IsolatedStorageFile.Remove o método de duas maneiras diferentes para excluir armazenamentos isolados.

Como: Prevê condições de falta de espaço com o armazenamento isolado

Mostra como a medir o espaço restante em um armazenamento isolado.

Como: Criar arquivos e diretórios no armazenamento isolado

Fornece alguns exemplos de criação de arquivos e pastas em um armazenamento isolado.

Como: Localizar diretórios e arquivos existentes no armazenamento isolado

Demonstra como ler a estrutura de diretórios e arquivos no armazenamento isolado.

Como: Ler e gravar arquivos no armazenamento isolado

Fornece um exemplo de escrever uma seqüência de caracteres para um IsolatedStorageFile e lê-lo de volta.

Como: Excluir arquivos e diretórios no armazenamento isolado

Demonstra como excluir diretórios e arquivos de armazenamento isolado.

E/S de arquivo e de fluxo

Explica como você pode executar acesso síncrono e assíncrono ao fluxo de dados e arquvos.

Back to top

Referência

System.IO.IsolatedStorage.IsolatedStorage