ViewState と Session のメモ

ViewState と Session のメモです。以前にまとめたものを箇条書きにしています。 *1

ユーザ状態管理 (クライアントサイド)

  • 全般
    • クライアントサイドのため、セキュリティを考慮する必要がある
    • クライアントからサーバへ渡されたデータは、以下の可能性を考慮する
      • 値が書き換えられている可能性
      • サーバにダメージを与えるための悪意あるコードを含む可能性
  • ViewState オブジェクト
    • 画面内で利用する一時的なデータの保持
  • クッキー
    • パーソナライズ情報、認証情報など
    • セッション情報をハイジャックされないようにする
  • クエリー文字列
    • 検索エンジンやリンクから直接該当ページにアクセスしやすい
      • 物販サイトのカタログ情報や商品情報などに利用することで利便性が高くなる

ユーザ状態管理 (サーバサイド)

  • Session オブジェクト
    • 画面間で引き継ぐデータに利用
      • ショッピングカートなど
    • Session 情報の保存先は、 SQL Server か StateServer (専用サーバ) にする
      • 開発時は、開発マシン内にStateServerを用意する
      • InProc でも良いが、 StateServer にする方がバグを発見しやすい
  • HttpContext オブジェクト
    • 1リクエスト内でのみ利用される基盤系データ
  • SQL Server
    • 再アクセス時にも残しておきたい情報
    • 開発の負荷が高い

*1:「.NET エンタープライズ Web アプリケーション開発技術大全 (Vol.3) ASP.NET 応用編」より