Reputation: 32217
I need to save a user's login information in encrypted form for this application I'm building, but I'm not sure of the best place to save the file. I don't want to save it into the program application folder as I want it per user.
So what is the best folder (or way) to save it into?
Edit: Using C++.
Upvotes: 3
Views: 2990
Reputation: 32217
Yeah, local application path looks like a winner.
I found this article in MSDN to get it in C++: http://msdn.microsoft.com/en-us/library/bb762494.aspx
Example:
char localAppPath[MAX_PATH];
SHGetFolderPath(NULL, CSIDL_LOCAL_APPDATA, NULL, SHGFP_TYPE_CURRENT, localAppPath);
Upvotes: 1
Reputation:
If you are using .NET to get special folders you can use
Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData);
or
Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData);
for the non-roaming version.
Upvotes: 0
Reputation: 85631
Seems like C:\Documents and Settings\%username%\Local Settings\Application Data may be the appropriate place according to Wikipedia. The article says this location is used for "User-specific and computer-specific application settings".
Edit: Cruizer pointed out in the comments (I'd reply there but I can't comment yet) that in Vista it is C:\Users\%username% and that it shouldn't be hard-coded. Thanks.
Upvotes: 3
Reputation: 1194
User information should always go in some sub directory in %HOMEDRIVE%%HOMEPATH% (Which maps to the users home directory). No exceptions. A good place for application specific settings per user is a sub directory inside %APPDATA%. This maps to: "%HOMEDRIVE%%HOMEPATH%\Application Data" on XP and to: " %HOMEDRIVE%%HOMEPATH%\AppData\Roaming" on Vista.
Upvotes: 0
Reputation: 76011
Use the Data Protection API (DPAPI) - a part of the CryptoAPI in XP and Vista. Here's a good overview of DPAPI - http://msdn.microsoft.com/en-us/library/ms995355.aspx
Upvotes: 2
Reputation: 6151
are you using .NET? how about IsolatedStorage? That way you wouldn't have to worry about the directory location, it'll just be there...
Upvotes: 0