名前付きパイプを使用してWindowsサービスにCGIプロセスを接続しようとしています。 開発マシンの別のサーバーを使用してコードが正常に実行されますが、CGIプロセスでCreateFile()を呼び出すと、IISにセキュリティ上の問題が発生します。IISのWindows Named-Pipe ACL
Windowsサービスは名前付きパイプサーバーなので、CGIプロセスはその名前付きパイプにクライアントとして接続しようとしています。
InitializeAcl()
AddAccessAllowedAce()
SetSecurityDescriptorDacl()
しかし、私は本当にコンセプトを理解していけない:
私は呼び出すことにより、フラグSECURITY_WORLD_SID_AUTHORITYとグローバルセキュリティ記述子を作成し、いくつかのコードを掘っています。 パイプサーバーCreateNamedPipe()をSECURITY_ATTRIBUTES構造体でこのACLで呼び出す必要があると仮定していますが、名前付きパイプクライアントはどうですか?
グローバルセキュリティ記述子を別に作成し、それにCreateFile()を呼び出しますか?
私はちょうどのCreateFile(にヌルを渡しください
SecurityAttributes.bInheritHandle = TRUE;
とそれを継承します)を呼び出しますか?
CGIプロセスがどのアカウントで実行されているかを知ることは役に立ちます。 – Murray
私はこれを変更しようとしているので、これを残しました。現在のところ、管理者権限を持つユーザーアカウントですが、最終的にIUSERになる可能性があります –