若要清除跨 Domain 的 Cookie 必須清除兩次,例如說使用者在 www1.domain.com 要執行登出動作,必須要先將 Domain 為 www1.domain.com 的 Cookie 給清除掉,在接著將 Domain 為 .domain.com 的這個 Cookie 清除掉。

因為這兩個 Cookie 為「同名」,全部都叫做 account,所以無法在一個 HTTP Request 中清除掉兩個同名的 Cookie,所以必須要在不同的兩個 HTTP Request 中個別刪除不同 Domain 的 Cookie。

 示例代码:

 

 
  
  1. // 
  2. // Cross-Domain Cookie Clear 
  3. // 
  4. // author: 
  5. //    newmin (www.ops.cc) 
  6. // 
  7.  
  8.  
  9.  HttpContext context = HttpContext.Current; 
  10.  
  11.  HttpCookie c = context.Request.Cookies["account"]; 
  12.  c.Expires = DateTime.Now.AddDays(-1); 
  13.  
  14.  //先清除.domain.com的Cookie 
  15.  if (String.IsNullOrEmpty(context.Request["domain"])) 
  16.  { 
  17.      c.Domain = ".domain.com"
  18.      context.Response.SetCookie(c); 
  19.      context.Response.Redirect("?domain=mine"true); 
  20.  } 
  21.   else 
  22.   { 
  23.       context.Response.SetCookie(c); 
  24.   }