Platform SDK: DirectX |
ここでは、C++ でのアプリケーション開発について説明する。Visual Basic については、「DirectPlay Visual Basic サンプル」を参照すること。
DPSlots サンプルは、DirectPlay のセキュリティ機能を利用する、クライアント/サーバー型のスロット マシン シミュレータである。
サーバーはすべてのスロット マシンを制御し、各プレーヤーが所有する金額を追跡する。クライアントはサーバーに確実にログオンする。
ソース : (SDK ルート)\Samples\Multimedia\DPlay\Src\DPSlots
実行可能ファイル : (SDK ルート)\Samples\Multimedia\DPlay\Bin\DPSlots.exe
DPSlots は、実際には 2 つのアプリケーションで構成される。ユーザーがセッションをホストする場合、DPSlots はサーバーとして機能する。ユーザーがセッションに参加する場合、DPSlots はクライアントとして機能する。
サーバーは、ログオンの許可されたすべてのユーザーに対する取引残高の簡単なデータベースを管理する。クライアントはサーバーに対し、現在の残金を要求できる。また、クライアントはサーバーに対し、スロット マシンを実行し、勝ち負けの合計金額を計算するように要求することができる。サーバーは Slotsdb.txt という簡単なテキスト データベースを維持する。このデータベースは、各ユーザーの残金を記録する。テキスト ファイルの各行には、次の例に示すように、ユーザー アカウントの ID と 残金を示す 8 文字の数字がカンマで区切られて格納されている。
Account1, 1000 Account2, 500
このファイルにユーザーごとに行を手作業で入力する必要がある。"Account1"の部分には、ネットワーク ユーザー名を入力する。
ユーザーがセッションに参加すると、DPSlots はクライアントとして機能し、すべての操作に対するメッセージをサーバーに送信する。クライアントは、名前とパスワードを使用してユーザーをサーバーにログオンするように要求される場合がある。
セキュリティを使用して DPSlots をホストするには、ホストすることを選択した後に、[Require Secure Login] チェックボックスをオンにする。[Security Provider] テキスト ボックスを空白のままにすると、デフォルトの NTLM セキュリティ パッケージが使用される。別の SSPI セキュリティ パッケージをインストールしている場合は、ここでそのパッケージを指定できる。
セキュリティ プロバイダを設定すると、サーバーはセキュア セッションを提供できるようになる。クライアントがセッションに参加するには、ユーザー名とパスワードを使って安全にログオンする必要がある。クライアントとサーバー間でやり取りされるメッセージは、すべてデジタル署名され、暗号化される。
安全なサーバーをホストするときは、使用しているセキュリティ パッケージによって各ユーザーのアカウント ID が定義される。このアカウント ID を、適切な残金と共にデータベース ファイルに格納する必要がある。デフォルトのセキュリティ パッケージは NTLM である。NTLM は、ドメインとユーザー名を使用してアカウント ID を定義する。たとえば、NTLM を使用している場合、ドメインが"GAMES"で、"Bob"および"Jane"という 2 人のユーザーがいれば、データベース ファイルは次のようになる。
GAMES/Bob, 1000 GAMES/Jane, 500
現在、セキュア セッションをホストできるのは、Windows NT または Windows 2000 のワークステーションまたはサーバー上で NTLM を使用している場合だけである。