
Silverlight 2をApacheで使うためのイロハ--原理と実装
HTTPの認証を確認する
今回はHTTPの認証の動作について確認していくことにしよう。
Silverlightからサーバへ通信するときのパターンとしては、下記のようになる
- Silverlightのプログラムそのもの(.xapファイル)が、認証の必要な場所(URI)にあるのかどうか
- 通信しようとする場所が認証を要求する場所なのかどうか
この組み合わせで、表1のように4つのパターンができることになる。
通信先/.xapファイル | 認証不要 | 要認証 |
---|---|---|
認証不要 | 通信可能 | 通信可能 |
要認証 | ? | ? |
テストに使うプログラムはとても簡単なものだ。ウェブページにアクセスするとページに埋め込まれたSilverlight 2のアプリケーションが立ち上がり、画像1のように表示される。

2つあるボタンは、それぞれクリックするとサーバの別々のパスにあるテキストファイルを取得する。単純にHTTPでGETアクセスするだけなので、WebClientを使って簡単に書くことができる。
それではプログラムを作る準備をしよう。
プロジェクトの準備
Visual Studio 2008でSilverlight 2のプログラムを開発するには、いくつか追加しなければならないものがある。本稿では詳細に触れないので、これが初めての開発の場合は「Visual Studio 2008 用 Microsoft Silverlight Tools Beta 1」などを参考に、必要な設定をすませておいてほしい。
今回の開発では、ごく基本的な構成でプロジェクトを作成し、ClientBinの下にディレクトリを2つ追加する。これらのディレクトリをfreeとrestrictedという名前にしよう。その後で、ApacheからClientBinディレクトリには/で、ClientBin\freeとClientBin\restrictedにはそれぞれ/freeと/restrictedでアクセスできるよう設定する。その名の通り、/restrictedにはbasic認証によるアクセス制限をかける。今回のテスト環境の構成をまとめると表2のようになる。
ファイルシステム上のディレクトリ | Apache経由のURI | 認証 |
---|---|---|
ClientBin | /silverlight | 不要 |
ClientBin\free | /silverlight/free | 不要 |
ClientBin\restricted | /silverlight/restricted | 必要 |
Visual Studio 2008を起動し、プロジェクトの作成を選択する(画像2)。テンプレートからSilverlight Applicationを選択し、適当な名前をつけよう。ここではSilverApacheという名前にした。
プロジェクトを作成すると、ASP.NETのテスト用サーバを使うのか、それとも単純なWebページを用意するだけなのかを聞かれる。今回はApacheをサーバに使うので、後者を選択しよう(画像3)。

これでプロジェクトに必要なディレクトリやファイル群が一通り作成される。C:\Users\<アカウント名>\Documents\Visual Studio 2008\Projects\SilverApache\SilverApache\SilverApache\ClientBinというディレクトリができているはずだ。
ClientBinディレクトリの下にfreeとrestrictedというディレクトリを作っておこう。後でSilverlight 2のアプリケーションからアクセスするファイルとして、それぞれのディレクトリの下にfree.txtとrestricted.txtというファイルを作り、内容を適当に書いておく。