10

C# で IE 拡張機能 (BHO) を作成しています。プロテクト モード (IE の新しい UAC 準拠モードで、すべての拡張機能を低整合性で実行することを強制する) で実行すると、appdata フォルダーの user.config にアクセスできないため、失敗します。

ファイルが整合性の低いプロセスで読み取り可能であることをマークする方法はありますか?

それができない場合、BHO を強制的に中間レベルの整合性で実行する方法はありますか?

それができない場合、AppData の中程度の整合性ファイルを指す低整合性のフォルダに低整合性のシンボリック リンクを作成する方法はありますか?

それができない場合、アプリケーションに LocalLow フォルダー内の user.config ファイルを強制的に使用させる方法はありますか? .net でこのフォルダーのパスを取得するにはどうすればよいですか (Environment.SpecialFolder の下にリストされていません)。XP を実行しているユーザーや、保護モードをオフにしているユーザーに、すべての user.config データを失うことなくフォールバックできますか?

4

4 に答える 4

7

特にエレガントではないアプローチが1つありますが、中レベルの整合性で別の(ブローカー)プロセスを開始して、「ダーティワーク」を実行し、IPCを使用して通信することができます。作業を楽にするために、通信にソケットを使用することをお勧めします。ソケットは、異なる整合性レベルのプロセス間で通信する場合に注意が必要なセキュリティチェックを必要としないためです。

新しいプロセスを生成するときにUAC警告をスキップするために、BHO登録スクリプトを変更し、新しいプロセスを中レベルにサイレントに昇格するようにIEに通知するいくつかのレジストリ値を追加できます。

詳細については、http://msdn.microsoft.com/en-us/library/bb250462 (VS.85).aspx#wpm_elebpを参照してください。

于 2010-01-18T23:28:33.993 に答える
1

私はProtected Mode Internet Explorer Referenceから始めます。

于 2010-03-26T18:05:07.087 に答える
0

RegisterBHO 中にワンショットの特権アクセスを取得します。その後、保護モードになります。

BHO の実行中に長期ストレージを変更する必要がある場合は、レジストリが最適な場所であることがわかりました。変更は自分だけに表示されますが、保持されます。

于 2012-04-05T21:25:07.290 に答える
0

System.IO.IsolatedStorage にファイルを保存する独自の SettingsProvider を作成することをお勧めします。

于 2010-01-08T19:31:59.577 に答える