0

はるかに低い特権モード (NT AUTHORY\Network サービス) で同じローカル コンピューターで実行されている他のプロセス (IIS7 モジュール ワーク プロセス) から、最大の特権 (NT AUTHORY\System) を使用して 1 つの関数を呼び出す必要があります。

IIS モジュールは、何らかのテキスト (ユーザー名) を渡してその関数を呼び出します。その関数は、CloseHandle 関数を使用したプロセスの後に閉じられる HADNLE タイプの魔女を返す必要があります。

( 関数: LogonUser http://msdn.microsoft.com/en-us/library/aa378184(VS.85).aspx )

これを行う最善の方法は何ですか?COM+、共有メモリ、名前付きパイプ? このプログラミングの経験がないので、助けが必要です。名前付きパイプでハンドル型を渡す方法がわかりませんか? (ポインターやその他のデータ型ではなく、テキストベースのメッセージのみを渡す例のみを見ました)。

4

3 に答える 3

1

ハンドルはセッションの境界を越えて使用できません。また、すべてのタイプのハンドルのプロセス境界を越えて使用できるかどうかは100%わかりません。

たとえば、パイプを使用して、昇格された特権で実行されている他のプロセスに通知して、独自のハンドルを取得し、必要な操作を実行することをお勧めします。

コミュニケーションを行うための最良の方法については、これは実際にはあなたの正確なニーズとそれぞれの方法での正確な経験レベルに依存します。

于 2010-02-17T20:14:19.667 に答える
0

参考までに、HANDLEはWindowsでは32ビット整数値です。これは、メモリ位置へのポインタではありません。

于 2010-02-17T20:17:26.153 に答える
0

ハンドルを別のプロセスに渡すことはできません。ハンドルはプロセス ローカルです。ただし、DuplicateHandleを使用して、別のプロセスで使用するハンドルのクローンを作成できます。他のプロセスだけが複製を使用できます。他のプロセスは、それを呼び出す責任がCloseHandleあります。

于 2010-02-17T20:25:41.767 に答える