次の方法で共有


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

HttpContext プロパティ、Request プロパティなどの HTTP 要求を処理するためのサーバー オブジェクトを参照する現在の 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.EndRequest イベント中に HttpApplication.AcquireRequestStateSessionStateModule によって呼び出されます。 HTTP 要求から有効なセッション識別子を取得できない場合は、 を返します null。 が SessionStateModule メソッドからGetSessionIDを受け取nullった場合は、 メソッドをCreateSessionID呼び出して、新しいセッションの新しいセッション識別子を取得します。

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

適用対象

こちらもご覧ください