認証付きIpcChannelを使用する場合、それに必要な設定や、コードはサーバー側で記述し、クライアント側ではそのためのコードは必要ありません。(アカウントの偽装をしたい場合にどうするかっていうのはあります。未調査。)
サーバー側の大まかな手順は以下の通り。
- Remotingに必要なもの以外に、System.SecurityとSystem.Security.AccessControlをUsingしておく
- アクセスを許可する、もしくは拒否するアカウントのSIDからSecurityIdentifierクラスのインスタンスを作成する。
- DiscretionaryAclクラスオブジェクトのインスタンスを作る。
- 3で作成したインスタンスのAddAccessメソッドで2で作成したSecurityIdentifierクラスのインスタンスを使ってアクセスの許可、拒否を設定する。
- DiscretionaryAclクラスのインスタンスを使ってCommonSecurityDescriptorのインスタンスを作ります。ここまででACLに関する準備が終了。
- IpcServerChannelクラスのインスタンスを作成します。
とりあえず実際に動くコードは以下のmsdnから落としてみてください。(へたれです。)
http://msdn2.microsoft.com/library/ms180985(en-us,vs.80).aspx
あと上のサンプルコード中にNetworkアカウントのWellknownなSIDを記述していますが、以下の@ITのページでWellknownなSIDの一覧が提供されています。
オブジェクトを識別するSIDとは?
コメント