次の方法で共有


セッション状態の管理

Microsoft ASP.NET では、複数の要求にわたるユーザー セッションの情報を保存するために使用できる、セッション状態オブジェクトが用意されています。ASP.NET のセッション管理機能はスケーラブルかつ堅牢な機能で、複数の Web ファームにわたって使用することが可能です。

クッキーレス セッションに関する考慮事項

既定では、ASP.NET のセッション オブジェクトはクライアント側の Cookie を使用して識別子を格納します。この識別子は、サーバーのラウンド トリップ間のセッションを特定するために使用されます。ただし、このセッション オブジェクトはセッション ID を含む新しい URL にクライアントを最初にリダイレクトする、クッキーレス セッション モードもサポートしているので、URL からセッション ID を自動的に解析します。

セッション状態を使用する ASP.NET モバイル Web アプリケーションの場合は、以下の要素を考慮する必要があります。

  • モバイル デバイスやゲートウェイの中には、Cookie をサポートしないものがあります。これらのデバイスに対応可能な Web アプリケーションを実行するには、Web サーバーではクッキーレス モードにセッション管理を設定する必要があります。
  • 一部のモバイル デバイスでは、クッキーレス セッション管理方法によって URL がリダイレクトされた後の、相対 URL の処理に問題があります。

一部のモバイル デバイスは Cookie をサポートしていないため、開発者は永続的な状態が必要な状況に適した代替手段を見つける必要があります。たとえば、ユーザーがページにログオンした場合に、残りのセッションに使用されるログイン ID をアプリケーションが開発者に割り当てることができます。通常、このような形式の認証には Cookie が使用されます。これは "Cookie ベースの認証" と呼ばれています。ただし、Cookie ベースの認証は、Cookie をサポートしないデバイスでは使用することができません。その代わり、開発者は別の状態管理メカニズムを使用する必要があります。

セッション状態

代替手段の 1 つは、セッション状態を使用することです。Cookie を使用せずに動作するようにセッション状態を構成することが可能なため、ユーザーはセッション状態で ID を保持することができます。ただし、この方法の欠点は、セッションが終了すると情報も失われることです。もう 1 つの欠点として、この方法では常にセッション状態を使用する必要があります。

隠し変数

ASP.NET モバイル Web フォームには、隠し変数を書き出すモバイル コントロールはありません。その代わり、フォームには HiddenVariables というコレクションが MobilePage クラス内に用意されており、これを使用して隠し変数を指定できます。このコレクションに格納されている、名前と変数のすべての組み合わせは隠し変数として保持されています。HiddenVariables コレクションは、フォームが送信されたときに、これらの隠し変数によって自動的に再構築されます。

この代替手段では、ページ上の隠し変数が使用されます。隠し変数は、同じページへの送信であるか、別のページへの送信であるかに関わらず、フォームの送信の一部として自動的に再送信されます。

参照

ViewState の制御 | ViewState のサポート | ASP.NET モバイル Web アプリケーションの作成 | アプリケーション開発者ガイド | モバイル Web アプリケーションの作成 | ASP.NET の状態管理 | LoadPrivateViewState | コントロールの状態の維持 | SavePrivateViewState | HiddenVariables | MobilePage