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 由 SessionStateModule 期间 HttpApplication.AcquireRequestState 和 HttpApplication.EndRequest 事件调用。 如果无法从 HTTP 请求中检索有效的会话标识符,则返回 null。
SessionStateModule如果从null该方法接收GetSessionID,它将调用CreateSessionID该方法以获取新会话的新会话标识符。
如果实现返回 CreateSessionID 的值可能包含在 HTTP 响应或请求中无效的字符,则应使用 UrlEncode 该方法对方法实现中的 SaveSessionID 会话标识符值进行编码,以及 UrlDecode 解码方法实现中的 GetSessionID 会话标识符值的方法。