作成中のこのアプリケーションのために、ユーザーのログイン情報を暗号化された形式で保存する必要がありますが、ファイルを保存する最適な場所がわかりません。ユーザーごとに保存したいので、プログラムアプリケーションフォルダーに保存したくありません。
では、保存するのに最適なフォルダー (または方法) は何ですか?
編集:C++を使用。
作成中のこのアプリケーションのために、ユーザーのログイン情報を暗号化された形式で保存する必要がありますが、ファイルを保存する最適な場所がわかりません。ユーザーごとに保存したいので、プログラムアプリケーションフォルダーに保存したくありません。
では、保存するのに最適なフォルダー (または方法) は何ですか?
編集:C++を使用。
Wikipediaによると、 C:\Documents and Settings\%username%\Local Settings\Application Data が適切な場所のようです。記事には、この場所が「ユーザー固有およびコンピューター固有のアプリケーション設定」に使用されると書かれています。
編集:クルーザーはコメントで指摘しました(私はそこに返信しますが、まだコメントすることはできません)。ありがとう。
XP および Vista の CryptoAPI の一部である Data Protection API (DPAPI) を使用します。DPAPI の概要は次のとおりです - http://msdn.microsoft.com/en-us/library/ms995355.aspx
ええ、ローカルアプリケーションパスは勝者のように見えます。
この記事をMSDNで見つけて、C ++で取得しました:http://msdn.microsoft.com/en-us/library/bb762494.aspx
例:
char localAppPath[MAX_PATH];
SHGetFolderPath(NULL, CSIDL_LOCAL_APPDATA, NULL, SHGFP_TYPE_CURRENT, localAppPath);
ユーザー情報は、常に %HOMEDRIVE%%HOMEPATH% (ユーザーのホーム ディレクトリにマップされます) のサブ ディレクトリに格納する必要があります。例外なく。ユーザーごとのアプリケーション固有の設定に適した場所は、%APPDATA% 内のサブ ディレクトリです。これは、XP では "%HOMEDRIVE%%HOMEPATH%\Application Data" に、Vista では "%HOMEDRIVE%%HOMEPATH%\AppData\Roaming" にマップされます。
.NET を使用していますか? IsolatedStorageはどうですか?そうすれば、ディレクトリの場所を気にする必要はありません。そこにあるだけです...
.NET を使用して特別なフォルダを取得している場合は、使用できます
Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData);
また
Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData);
非ローミング バージョンの場合。