ISessionIDManager.GetSessionID(HttpContext) 方法
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
從目前 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 物件,參考用於處理 HTTP 要求 (例如,Request 和 Response 屬性) 的伺服器物件。
傳回
與 HTTP 要求一起傳送的目前工作階段識別項。
範例
下列程式代碼範例顯示部分實 GetSessionID 作的方法。 如果您的自定義會話標識碼管理員支援無 Cookie 會話標識碼,您必須實作解決方案,以在 URL 中傳送和擷取會話識別碼,例如 ISAPI 篩選器。
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
備註
在和 HttpApplication.EndRequest 事件期間HttpApplication.AcquireRequestState, 會GetSessionID呼叫 SessionStateModule 方法。 如果您無法從 HTTP 要求擷取有效的工作階段識別碼,請傳回 null
。
SessionStateModule如果 從 GetSessionID 方法接收 null
,它會呼叫 CreateSessionID 方法,以取得新會話的新會話標識符。
如果實 CreateSessionID 作所傳回的值可能包含在 HTTP 回應或要求中無效的字元,您應該使用 UrlEncode 方法來編碼方法實作中的 SaveSessionID 會話標識符值,以及 UrlDecode 將方法實作中的 GetSessionID 會話標識符值譯碼的方法。