2008-09-22 32 views
12

Nếu có tập hợp cookie cho tên miền phụ, metric.foo.com, có cách nào để tôi xóa cookie metric.foo.com theo yêu cầu đến www.foo.com không? Trình duyệt (ít nhất là Firefox) dường như bỏ qua một Set-Cookie với tên miền là metric.foo.com.Có thể xóa cookie miền phụ không?

Trả lời

16

Cookie chỉ có thể đọc được bởi tên miền đã tạo chúng, vì vậy nếu cookie được tạo tại metric.foo.com, cookie sẽ phải bị xóa trong cùng một miền như được tạo. Điều này bao gồm các tên miền phụ.

Nếu bạn được yêu cầu xóa cookie khỏi metric.foo.com, nhưng hiện đang chạy một trang tại www.foo.com, bạn sẽ không thể.

Để thực hiện việc này, bạn cần tải trang từ metric.foo.com hoặc tạo cookie trong foo.com để có thể truy cập được dưới bất kỳ tên miền phụ nào. HOẶC sử dụng này:

Response.cookies ("mycookie") domain = ".foo.com"

... trong khi tạo ra nó, và trước khi bạn xóa nó..

..untested - sẽ hoạt động.

5

Tôi gặp sự cố tương tự với tên miền phụ. Đối với một số lý do nhận được cookie đầu tiên từ yêu cầu không hoạt động. Thay vào đó, tôi đã kết thúc việc tạo một cookie mới có cùng tên cookie và ngày hết hạn trong quá khứ. Điều đó hoạt động hoàn hảo:

 
void DeleteSubdomainCookie(HttpResponse response, string name) 
{ 
    HttpCookie cookie = new HttpCookie(name); 
    cookie.Expires = DateTime.Now.AddMonths(-1); 
    cookie.Domain = ".yourdomain.com"; 
    response.Cookies.Add(cookie); 
} 
Các vấn đề liên quan