ISessionIDManager.SaveSessionID(HttpContext, String, Boolean, Boolean) 方法

定义

将新创建的会话标识符保存到 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 请求(例如,HttpContextRequest 属性)的服务器对象的当前 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 解码会话标识符值。

适用于

另请参阅