ISessionIDManager.SaveSessionID(HttpContext, String, Boolean, Boolean) 方法
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
将新创建的会话标识符保存到 HTTP 响应。
public:
void SaveSessionID(System::Web::HttpContext ^ context, System::String ^ id, [Runtime::InteropServices::Out] bool % redirected, [Runtime::InteropServices::Out] bool % cookieAdded);
public void SaveSessionID (System.Web.HttpContext context, string id, out bool redirected, out bool cookieAdded);
abstract member SaveSessionID : System.Web.HttpContext * string * bool * bool -> unit
Public Sub SaveSessionID (context As HttpContext, id As String, ByRef redirected As Boolean, ByRef cookieAdded As Boolean)
参数
- context
- HttpContext
引用用于处理 HTTP 请求(例如,HttpContext 和 Request 属性)的服务器对象的当前 Response 对象。
- id
- String
会话标识符。
- redirected
- Boolean
该方法返回时,如果响应重定向到当前 URL(会话标识符已添加至该 URL),则包含布尔值 true
;否则为 false
。
- cookieAdded
- Boolean
该方法返回时,如果 Cookie 已添加至 HTTP 响应,则包含布尔值 true
;否则为 false
。
示例
下面的代码示例演示了一个部分实现 SaveSessionID 的方法。 如果自定义会话 ID 管理器支持无 Cookie 会话标识符,则需要实现用于在 URL 中发送和检索会话标识符的解决方案,例如 ISAPI 筛选器。
public void SaveSessionID(HttpContext context, string id, out bool redirected, out bool cookieAdded)
{
redirected = false;
cookieAdded = false;
if (pConfig.Cookieless == HttpCookieMode.UseUri)
{
// Add the SessionID to the URI. Set the redirected variable as appropriate.
redirected = true;
return;
}
else
{
context.Response.Cookies.Add(new HttpCookie(pConfig.CookieName, id));
cookieAdded = true;
}
}
Public Sub SaveSessionID(context As HttpContext, _
id As String, _
ByRef redirected As Boolean, _
ByRef cookieAdded As Boolean) _
Implements ISessionIDManager.SaveSessionID
redirected = False
cookieAdded = False
If pConfig.Cookieless = HttpCookieMode.UseUri Then
' Add the SessionID to the URI. Set the redirected variable as appropriate.
redirected = True
Return
Else
context.Response.Cookies.Add(New HttpCookie(pConfig.CookieName, id))
cookieAdded = True
End If
End Sub
注解
对象SaveSessionID在事件期间HttpApplication.AcquireRequestState调用 SessionStateModule 方法。 当无 cookie 会话状态) 或未过期的会话 Cookie 中使用时,方法 SaveSessionID 将会话标识符存储在 URL (中。
如果从 CreateSessionID 实现返回的值可能包含在 HTTP 响应或请求中无效的字符,则应使用 UrlEncode 方法在方法实现中 SaveSessionID 对会话标识符值进行编码,并使用 UrlDecode 方法在方法实现中 GetSessionID 解码会话标识符值。