Domanda

Devo salvare le informazioni di accesso di un utente in forma crittografata per questa applicazione che sto creando, ma non sono sicuro del posto migliore in cui salvare il file. Non voglio salvarlo nella cartella dell'applicazione del programma come lo voglio per utente.

Quindi qual è la migliore cartella (o modo) in cui salvarla?

Modifica: usando C ++.

È stato utile?

Soluzione

Sembra C: \ Documents and Settings \% username% \ Local Settings \ Application Data potrebbe essere il posto giusto secondo Wikipedia . L'articolo dice che questa posizione viene utilizzata per " Impostazioni dell'applicazione specifiche dell'utente e specifiche del computer " ;.

Modifica: Cruizer ha sottolineato nei commenti (risponderei lì ma non posso ancora commentare) che in Vista è C: \ Users \% username% e che non dovrebbe essere codificato. Grazie.

Altri suggerimenti

Utilizza l'API di protezione dei dati (DPAPI), una parte di CryptoAPI in XP e Vista. Ecco una buona panoramica di DPAPI - http://msdn.microsoft.com/en -us / library / ms995355.aspx

Sì, il percorso dell'applicazione locale sembra un vincitore.

Ho trovato questo articolo in MSDN per ottenerlo in C ++: http: / /msdn.microsoft.com/en-us/library/bb762494.aspx

Esempio:

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

stai usando .NET? che ne dici di IsolatedStorage ? In questo modo non dovresti preoccuparti della posizione della directory, sarà solo lì ...

Le informazioni sull'utente devono sempre andare in qualche sottodirectory in% HOMEDRIVE %% HOMEPATH% (che mappa alla home directory degli utenti). Nessuna eccezione. Un buon posto per le impostazioni specifiche dell'applicazione per utente è una sottodirectory all'interno di% APPDATA%. Questo corrisponde a: "% HOMEDRIVE %% HOMEPATH% \ Application Data " su XP e a: " % HOMEDRIVE %% HOMEPATH% \ AppData \ Roaming " su Vista.

Se si utilizza .NET per ottenere cartelle speciali, è possibile utilizzare

Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData);

o

Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData);

per la versione non in roaming.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top