検索
特集

特集:クライアントステート管理、3つの手法Visual Studio Magazine(8/9 ページ)

ASP.NET上でクライアント状態管理に用いる「セッション状態」「ビューステート」「クッキー」。この特集では、3つそれぞれにおける実践的なテクニックを解説する。

PC用表示 関連情報
Share
Tweet
LINE
Hatena

クッキーをクライアント状態の管理に利用する

 最後に、クライアント状態を管理するテクニックとして、クッキーを考察していこう。

 多くのWeb開発者は知らないだろうが、クッキーは良い標準規格ではない。しかしながら、すべての代表的なブラウザはクッキーをサポートし、Webアプリケーションの開発テクノロジーもまたクッキーを利用している。

 ASP.NETは、2つの処理のためにクッキーを利用している。それは、「セッション状態」と「フォーム認証」だ。

 セッション状態に関連するクッキーは、「.ASPXSession」となる。このクッキーは、セッションデータにリクエストを結びつけるために利用するSessionIDを格納する。一方、フォーム認証に関連するクッキーは、「.ASPXAUTH」だ。このクッキーは、暗号化された資格情報を格納する。資格情報は解読され、ユーザーが再認証されるときに用いられる。

 Internet Explorerで[ツール]メニューの[インターネットオプション]を選択し、[インターネットオプション]ダイアログボックスを表示すると、システムに保存されているすべてのクッキーを確認できる。[全般]タブで[設定]ボタンをクリックし、[設定]ダイアログボックスを表示してほしい。そして[ファイルの表示]ボタンをクリックすると、エクスプローラで「Temporary Internet Files」フォルダがポップアップする。

 その後、「種類」でソートして「テキスト文章」となっているものや、「名前」でソートして「Cookie」という名前のものがクッキーの実体だ。

 クライアントがクッキーを利用することを保証できれば、クッキーは状態を管理する良い方法だと言えよう。クッキーには、文字列型(あるいは文字列に変換可能な型)であれば、「名前/値」の組み合わせで、値を保存できる。クッキーにおけるただひとつの制限は、格納できるデータの量だ。ほとんどのブラウザは、最大で4Kバイトのクッキー容量しか保存サポートしない。

 ASP.NETにおけるクッキーの動きは単純だ。

 たとえば、ユーザーがどのロールに属しているのかという情報を格納する場面で、クッキーを利用できる。リクエストのたびにユーザーのロールをデータベースから参照するのではなく、特定の「UserRolesクッキー」が存在しない場合にのみ、ユーザーのロールを参照する。そして、UserRolesクッキーを作成してユーザーが属するロールを加える。

 後続するリクエストにおいては、単純にUserRolesクッキーを開き、ロールを抽出して、それをカレントユーザーが属するロールとして加えればよい(リスト1)。

*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***

 Webサイトにおいて、ユーザーが属するロールを格納するためにクッキーを利用できる。リクエストのたびにユーザーのロールをデータベースから引っ張ってくるのではなく、特定の「UserRolesクッキー」が存在しない場合のみに、ユーザーのロールを引っ張ってくる。そしてUserRolesクッキーを作成して、ユーザーが属するロールを加える。その後、単純にUserRolesクッキーを開き、ロールを抽出して、それをカレントユーザーが属するロールとして加えればよい。

*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***

© Copyright 2001-2005 Fawcette Technical Publications

ページトップに戻る