Silverlight 2をApacheで使うためのイロハ--原理と実装

dragan10
2008-07-15 08:00:00
  • このエントリーをはてなブックマークに追加

HTTPの認証を確認する

 今回はHTTPの認証の動作について確認していくことにしよう。

 Silverlightからサーバへ通信するときのパターンとしては、下記のようになる

  • Silverlightのプログラムそのもの(.xapファイル)が、認証の必要な場所(URI)にあるのかどうか
  • 通信しようとする場所が認証を要求する場所なのかどうか

 この組み合わせで、表1のように4つのパターンができることになる。

表1
通信先/.xapファイル認証不要要認証
認証不要通信可能通信可能
要認証

 テストに使うプログラムはとても簡単なものだ。ウェブページにアクセスするとページに埋め込まれたSilverlight 2のアプリケーションが立ち上がり、画像1のように表示される。

画像1 画像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のようになる。

表2 テスト環境の構成
ファイルシステム上のディレクトリApache経由のURI認証
ClientBin/silverlight不要
ClientBin\free/silverlight/free不要
ClientBin\restricted/silverlight/restricted必要

 Visual Studio 2008を起動し、プロジェクトの作成を選択する(画像2)。テンプレートからSilverlight Applicationを選択し、適当な名前をつけよう。ここではSilverApacheという名前にした。

画像2 画像2

 プロジェクトを作成すると、ASP.NETのテスト用サーバを使うのか、それとも単純なWebページを用意するだけなのかを聞かれる。今回はApacheをサーバに使うので、後者を選択しよう(画像3)。

画像3 画像3

 これでプロジェクトに必要なディレクトリやファイル群が一通り作成される。C:\Users\<アカウント名>\Documents\Visual Studio 2008\Projects\SilverApache\SilverApache\SilverApache\ClientBinというディレクトリができているはずだ。

 ClientBinディレクトリの下にfreeとrestrictedというディレクトリを作っておこう。後でSilverlight 2のアプリケーションからアクセスするファイルとして、それぞれのディレクトリの下にfree.txtとrestricted.txtというファイルを作り、内容を適当に書いておく。

  • コメント(1件)
#1 anonymous   2010-01-21 07:00:02
サーバ側ソースコードの掲載忘れとはお粗末な。。。
  • 新着記事
  • 特集
  • ブログ