WCF と名前付きパイプの両方の初心者です。
UI アプリケーションと同じマシン上の Windows サービスとの間で安全に通信する方法が必要です。必要なものは次のとおりです。 - クライアント UI アプリケーションは、さまざまなメッセージ タイプを Windows サービスに送信 (プッシュ) する必要があります。- クライアント UI アプリのニーズは、サービスからさまざまなメッセージ タイプ (プッシュまたはプル) を受け取ります。
(ここでのメッセージは、単純に構造化されたシリアル化されたデータです)。
これで、この交換はすべて、承認されたユーザー アカウント (サービス アカウントとは異なる可能性があります) でのみ行われます。そこで、サービスとユーザー アカウントの両方に対して名前付きパイプの ACL を作成することを考えていました。
ただし、名前付きパイプはストリームのみをサポートします。名前付きパイプを介して交換する必要がある複数のタイプのメッセージがあります。つまり、それらを定義してシリアライズ/デシリアライズする必要があります。
これを回避するために、名前付きパイプで (シリアル化と RPC サポートのために) WCF を使用することを考えました。また、Windows サービスで WCF サービスをホストします。
質問 1) これは良いアプローチですか? 通信はマシン内に留まる必要があるため、WCF の下で http または tcp を使用することに躊躇します。
質問 2) WCF が使用する名前付きパイプの ACL をどのように使用できますか? これは私がコントロールできるものですか?クライアントとサーバー間で認証方式を実装するよりも、特定の SID で名前パイプを ACL 処理する方がセキュリティが向上すると思います。
ポインタ、提案をありがとう!サミール