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
引用用于处理 HTTP 请求(例如,HttpContext 和 Request 属性)的服务器对象的当前 Response 对象。
返回
随 HTTP 请求一起发送的当前会话标识符。
示例
下面的代码示例演示了一个部分实现 GetSessionID 的方法。 如果自定义会话 ID 管理器支持无 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
注解
方法GetSessionID在 和 HttpApplication.EndRequest 事件期间HttpApplication.AcquireRequestState由 SessionStateModule 调用。 如果无法从 HTTP 请求检索有效的会话标识符,请返回 null
。
SessionStateModule如果 从 GetSessionID 方法接收 null
,它将调用 CreateSessionID 方法以获取新会话的新会话标识符。
如果实现返回 CreateSessionID 的值可能包含在 HTTP 响应或请求中无效的字符,则应使用 UrlEncode 方法在方法实现中 SaveSessionID 对会话标识符值进行编码,并使用 UrlDecode 方法在方法实现中 GetSessionID 解码会话标识符值。