Windows XPおよびVistaアプリケーションのユーザー情報を保存するのに最適な場所
-
02-07-2019 - |
質問
このアプリケーションを作成するために、ユーザーのログイン情報を暗号化された形式で保存する必要がありますが、ファイルを保存するのに最適な場所がわかりません。ユーザーごとに必要なため、プログラムアプリケーションフォルダーに保存したくありません。
では、保存するのに最適なフォルダー(または方法)は何ですか?
編集:C ++の使用。
解決
ウィキペディア。記事では、この場所は「ユーザー固有およびコンピューター固有のアプリケーション設定」に使用されると述べています。
編集:Cruizerはコメントで指摘しました(私はそこに返信しますが、まだコメントできません)。VistaではC:\ Users \%username%であり、ハードコードするべきではないありがとう。
他のヒント
データ保護API(DPAPI)-XPおよびVistaのCryptoAPIの一部を使用します。 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);
.NETを使用していますか? IsolatedStorage はどうですか。そうすれば、ディレクトリの場所について心配する必要はありません。ただそこにあるだけです...
ユーザー情報は、常に%HOMEDRIVE %% HOMEPATH%(ユーザーのホームディレクトリにマップされる)のサブディレクトリに格納する必要があります。例外なく。 ユーザーごとのアプリケーション固有の設定に適した場所は、%APPDATA%内のサブディレクトリです。これは、"%HOMEDRIVE %% HOMEPATH%\ Application Data"にマッピングされます。 XPおよび宛先:" %HOMEDRIVE %% HOMEPATH%\ AppData \ Roaming" Vistaで。
.NETを使用して特別なフォルダーを取得する場合は、使用できます
Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData);
または
Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData);
非ローミングバージョンの場合。