0

私はあなたを伝えることができます。ユニバーサルアクセスの設定データを管理者と非管理者の両方で保存する場所はどこですか?管理者以外の者がへの書き込みを許可されていないところ

Environment::GetFolderPath(Environment::SpecialFolder::ApplicationData) + "\\Config.ini"; 
Environment::GetFolderPath(Environment::SpecialFolder::CommonApplicationData) + "\\monitorService\\Config.ini"; 
Environment::GetFolderPath(Environment::SpecialFolder::ProgramFiles) + "\\monitorService\\Config.ini"; 

私はEnvironment::SpecialFolder::CommonApplicationDataのため残念ながら、通常の限定されたユーザーのための1つのオフ限度大きな期待を持っていました。私は、一般的な、簡単に、間違って、&見つける、私はどこから構成データを読み込んで保存することができますディレクトリが必要です。私は、ユーザーごとの設定ファイルを数えることができると思いますが、できるだけシンプルにしておきたいと思います。

私のインストーラは普遍的なアクセスのためにregistryまたはファイルシステムの一部の領域を脇に置いていますか?私はInnosetupと.NETコードを使ってインストールします。私は気づいた(IRC)のfirefoxは、デフォルトユーザーの名前の "Application Data"フォルダをいっぱいにしているので、別の可能性があると思います。サービスによって設定データが必要となるため、レジストリ以外のものに短く2つの短いstringintを保存するのは非常に難しいかもしれません。

+0

私は理解しません。レジストリを正確に使用する際の問題は何ですか?これは、 – carpii

+0

のために設計されたものです。誰もが同じ設定をしなければならない理由はありますか?ほとんどのコンテキストでは、エンドユーザーはこの動作を期待したり望まないことがあります。また、潜在的なセキュリティの問題も発生します。 –

答えて

0

誰も答えてくれていないので、私の実装については私の解決策を提示するかもしれません。

制限付きユーザーのみがHKCUへの書き込みアクセス権を持ちます。これは、ファイルシステムを使用するのと同じです。ユーザ固有のいくつかのブランチは書き込み可能です。ユーザーがログオンした時点でグローバルコンフィグレーションファイルへの書き込みアクセスをチェックしてから、それがスローされた場合にuser-localコンフィグレーションに委譲する必要がありますが、これは実行する必要があります。最適化を簡単にし、パフォーマンスの低下を少なくするために、私はHKCUの前にFSを使用しようとします。

+0

それは解決されました。私は 'CommonApplicationData'への書き込みアクセスをテストし、必要に応じて' ApplicationData'を使用しました。興味深いことに、フォールバックは必要ではなく、おそらく、私がプログラムでCommonApplicationDataの下にサブフォルダを作成した方法は、それと関係がありました。 – John

関連する問題