HTTPはステートレスです。 ASP.NETセッション状態は、HTTPページ要求間の状態を維持するのを容易にするフレームワークです。
セッションは、ポストバックや異なるページ間で利用可能であるという点で、クラスレベルの変数とは異なります。たとえば、Page1.aspxで作成されたセッション変数は、後で同じアプリケーション内でPage2.aspxにリダイレクトされた場合に使用できます。
また、ページ・レベルで宣言された静的変数とは異なり、セッション変数はユーザーごとに独立しています。つまり、あるユーザーのセッション変数の値を変更しても、他のユーザーの同じ変数の値には影響しません。
ViewState
はユーザーのデータを一時的に保存するために使用できますが、複数のページにデータを保存することはできません。さらに、 viewstate
はページの一部であり、クライアントに送信されます。その結果、ユーザーに関連する重要な情報をViewState
に保存することはできません。それがSession変数が有用になる場所です。