Melhor lugar para guardar informações de usuário para aplicativos do Windows XP e Vista

StackOverflow https://stackoverflow.com/questions/147533

Pergunta

Eu preciso para salvar informações de login de um usuário de forma criptografada para esta aplicação que estou construindo, mas não tenho certeza do melhor lugar para salvar o arquivo. Eu não quero guardá-lo para a pasta de aplicação do programa como eu quero por usuário.

Então, qual é a melhor pasta (ou caminho) para salvá-lo em?

Edit:. Usando C ++

Foi útil?

Solução

Parece que C: \ Documents and Settings \% username% \ Local Settings \ Application Data pode ser o lugar apropriado de acordo com Wikipedia . O artigo diz que este local é usado para "configurações específicas do usuário e da aplicação específica do computador".

Edit: Cruizer apontou nos comentários (eu respondia lá, mas eu não posso comentar ainda) que no Vista é C: \ Users \% username% e que não deve ser codificado. Obrigado.

Outras dicas

Use a Protecção API de Dados (DPAPI) - uma parte do CryptoAPI no XP e Vista. Aqui está uma boa visão do DPAPI - http://msdn.microsoft.com/en -us / library / ms995355.aspx

Sim, parece caminho do aplicativo locais como um vencedor.

Eu encontrei este artigo na MSDN para obtê-lo em C ++: http: / /msdn.microsoft.com/en-us/library/bb762494.aspx

Exemplo:

char localAppPath[MAX_PATH];
SHGetFolderPath(NULL, CSIDL_LOCAL_APPDATA, NULL, SHGFP_TYPE_CURRENT, localAppPath);

você está usando .NET? como sobre IsolatedStorage ? Dessa forma, você não precisa se preocupar com o local do diretório, ele só vai estar lá ...

Informação do usuário deve sempre ir em algum diretório sub em% HOMEDRIVE %% HOMEPATH% (que mapeia para o diretório home de usuários). Sem exceções. Um bom lugar para configurações específicas aplicativo por usuário é um directório sub dentro% APPDATA%. Isso mapeia para: "% HOMEDRIVE %% HOMEPATH% \ Application Data" no XP e:. "% HOMEDRIVE %% HOMEPATH% \ AppData \ Roaming" na Vista

Se você estiver usando .NET para obter pastas especiais que você pode usar

Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData);

ou

Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData);

para a versão não roaming.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top