特集:クライアントステート管理、3つの手法:Visual Studio Magazine(9/9 ページ)
ASP.NET上でクライアント状態管理に用いる「セッション状態」「ビューステート」「クッキー」。この特集では、3つそれぞれにおける実践的なテクニックを解説する。
前ページのリスト1に示した最初のメソッドである「Application_AutehnticateRequest」は、ASP.NETがリクエストに対する認証準備が整った場合に呼び出されるイベントのデリケートだ。このメソッド内では、UserRolesという名称のクッキーの存在を確認し、また、それが値を保持しているか否かを調べている。
クッキーが見つからない場合には、ユーザーが属するロールを読み込み、そのロール名をCreateRolesCookiesメソッドに渡して呼び出すという処理だ。
CreateRolesCookiesメソッド内では、セミコロン区切りでつなげた文字列にフォーマットし、フォーム認証のAPIを用いて暗号化する。そしてその暗号化されたデータをUserRolesクッキーに格納する。UserRolesクッキーが見つかった場合には、まずそのクッキーの値を解読し、クッキーで提示されるユーザーが現在ログインしているユーザーと同一であることを確認する。そして、セミコロン区切りでロールを取り出し、GenericPrincipalクラスのコンストラクタ引数のひとつとして、該当するロールを渡すことで、標準プリンシパルを作成するのだ。
ここまでで、クライアント状態管理のために、「セッション状態」「ビューステート」「クッキー」という3つのテクニックを見てきた。
クライアント状態管理のためにどのようなテクニックを使うのかは、アプリケーションにおいて、何を達成することが必要なのかによって選んでほしい。ASP.NETは、これらの3つのテクニックを使って開発するための、簡単で使いやすいAPIを提供している。
- 著者について
【Matthew Gibbs】:Matthew Gibbs氏は、マイクロソフトのASP.NETチームのソフトウェアデザインエンジニアのリーダー。IISのASP 3.0、4.0、5.0の開発に取り組んだ。その後、.NET Frameworkのモバイルインターネットツールキットやバージョン1.1に取り組んだ。働いていないときには、ワシントンで、妻と娘、そして息子とアウトドアを楽しんでいる。
【Rob Howard】Rob Howard氏は、Telligent Systems社の設立者。Microsoft .NET Frameworkチームのオリジナルメンバーの一人でもあり、.NET 1.0、1.1、2.0の作成を手助けした。マイクロソフトにいる間は、.NETコミュニティーの指導者として、ASPInsidersやINETAへの寄付を募るのに協力し、MVPや開発研究者とともに.NETコミュニティーを発展させた。
日本語訳:大澤文孝
© Copyright 2001-2005 Fawcette Technical Publications
関連記事
- 特集:正規表現によるテキストファイルパース
- 特集:Windowsフォームにスパイスを――MessengerやOutlookに見る不定形フォームテク
- 特集:後編 準備が整ったSQL Server 2005
- 特集:前編 準備が整ったSQL Server 2005
- Whidbeyへのいざない
- ビル・ゲイツ、Visual Studio 2005のビジョンを語る
- Longhornアプリケーションの構築方法
関連リンク
- Nikhil Kothari、Vandana Datye:「Chapter 7 of Developing ASP.NET Server Controls and Components」(2002年Microsoft Press刊)
- ASP.NET Forums
- Billy Hollis:「Serialize Objects in VB.NET」
- Leonard Lobel :ASP.NET、「Manage Session State on the Server」
- Garry McGlennon :ASP.NET、「Maintain State With Dynamic Controls」
- Visual Studio Magazine|FTP Online
- FTP Online
- ITmediaデベロッパー|dev .NET
- ITmediaエンタープライズ