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

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

適用対象

こちらもご覧ください