「マイクロソフト系技術情報 Wiki」は、「Open棟梁Project」,「OSSコンソーシアム .NET開発基盤部会」によって運営されています。
近年のWebアプリケーションではメモリの大容量化、Sessionの冗長化構成対応により、イントラネット内の業務システムでは、Sessionの使用は一般的になっている。
Sessionの設定に関しては、web.configのsystem.web.sessionStateセクションにパラメタを設定する。
ASP.NETのデフォルトの設定では、Sessionの識別にCookieを使用する(CookieにSessionIDを保持する)。
なお、ASP.NET Mobile Web(携帯端末)の場合、端末によっては、Cookieをサポートしていないケースがあるため、SessionID(Cookie)の持ち回り方法が異なる。
web.configのsessionStateタグの定義を次のように、cookieless="true"に記述する。
<sessionState timeout="20" cookieless="true" mode="InProc"></sessionState>
この場合、下記に示す様に、ASP.NET Mobile Webにより、URLにForms認証の認証チケット(Cookie)が埋め込まれる。
http://[FQDN名]/[アプリケーション名]/S(SessionID)F(Forms認証の暗号化された認証チケット)/xxx.aspx
ASP.NET Mobile Web では、URLに埋め込まれたForms認証の認証チケット(Cookie)などの情報を上手く引き継ぐために、
画面遷移の際は、MobilePage?.RedirectToMobilePage? メソッドを使用する必要がある。
ASP.NETでは、同一プロセスだけでなく、別プロセス・サーバ(State Service)、SQL Server(State Database)などにSession情報を保存する機能もある。
障害時にもSession情報を保持したり、クラスタ構成で1人のクライアントが複数のノードに振り分けられたりする場合、
別プロセス・サーバ(State Service)、SQL Server(State Database)などにSession情報を保存する方式を検討する。
この場合、Sessionに格納するオブジェクトはシリアル化可能に実装する必要がある。
Tags: :.NET開発, :ASP.NET, :ASP.NET Web Forms, :ASP.NET MVC