Language

ISessionIDManager.GetSessionID(HttpContext) メソッド

定義

現在の HTTP 要求のコンテキストからセッション識別子を取得します。

public:
 System::String ^ GetSessionID(System::Web::HttpContext ^ context);
public string GetSessionID(System.Web.HttpContext context);
abstract member GetSessionID : System.Web.HttpContext -> string
Public Function GetSessionID (context As HttpContext) As String

パラメーター

context
HttpContext

HTTP 要求の処理に使用するサーバー オブジェクトを参照する現在の HttpContext オブジェクト (たとえば、 Request プロパティや Response プロパティ)。

返品

HTTP 要求と共に送信された現在のセッション識別子。

例

次のコード例は、部分的に実装された GetSessionID メソッドを示しています。 カスタム セッション ID マネージャーが Cookie レス セッション識別子をサポートしている場合は、ISAPI フィルターなどの URL でセッション識別子を送信および取得するためのソリューションを実装する必要があります。

public string GetSessionID(HttpContext context)
{
  string id = null;

  if (pConfig.Cookieless == HttpCookieMode.UseUri)
  {
    // Retrieve the SessionID from the URI.
  }
  else
  {
    id = context.Request.Cookies[pConfig.CookieName].Value;
  }      

  // Verify that the retrieved SessionID is valid. If not, return null.

  if (!Validate(id))
    id = null;

  return id;
}
Public Function GetSessionID(context As HttpContext) As String _
  Implements ISessionIDManager.GetSessionID

  Dim id As String = Nothing

  If pConfig.Cookieless = HttpCookieMode.UseUri Then
    ' Retrieve the SessionID from the URI.
  Else
    id = context.Request.Cookies(pConfig.CookieName).Value
  End If    

  ' Verify that the retrieved SessionID is valid. If not, return Nothing.

  If Not Validate(id) Then _
    id = Nothing

  Return id
End Function

注釈

GetSessionID メソッドは、SessionStateModuleおよびHttpApplication.AcquireRequestStateイベント中にHttpApplication.EndRequestによって呼び出されます。 HTTP 要求から有効なセッション識別子を取得できない場合は、 null返します。 SessionStateModuleは、null メソッドからGetSessionIDを受け取ると、CreateSessionID メソッドを呼び出して、新しいセッションの新しいセッション識別子を取得します。

CreateSessionID実装によって返される値に HTTP 応答または要求で無効な文字が含まれている可能性がある場合は、UrlEncode メソッドを使用して、SaveSessionID メソッドの実装でセッション識別子の値をエンコードし、UrlDecode メソッドを使用して、GetSessionID メソッドの実装でセッション識別子の値をデコードする必要があります。

適用対象

こちらもご覧ください