Lấy tiêu đề Câu hỏi của OP là xóa tất cả cookie - "Xóa Cookie trong trang web"
Tôi đã tìm thấy mã của Dave Domagala trên web ở đâu đó. Tôi đã chỉnh sửa Dave's để cho phép cả cookie của Google Analytics - cái này lặp lại qua tất cả cookie được tìm thấy trên trang web và xóa tất cả. (Từ góc độ nhà phát triển - cập nhật mã mới vào một trang hiện có, là một động thái tốt để tránh các vấn đề khi người dùng truy cập lại trang web).
Tôi sử dụng mã bên dưới song song với việc đọc cookie trước, giữ bất kỳ dữ liệu cần thiết nào - sau đó đặt lại cookie sau khi rửa sạch mọi thứ bằng vòng lặp bên dưới.
Mật mã:
int limit = Request.Cookies.Count;
HttpCookie aCookie;
string cookieName;
for(int i = 0; i < limit; i++)
{
cookieName = Request.Cookies[i].Name;
aCookie = new HttpCookie(cookieName);
aCookie.Value = "";
aCookie.Expires = DateTime.Now.AddDays(-1);
Response.Cookies.Add(aCookie);
}
Bổ sung: Nếu bạn sử dụng Google Analytics
Vòng lặp / xóa ở trên sẽ xóa TẤT CẢ cookie cho trang web, vì vậy nếu bạn sử dụng Google Analytics - có thể sẽ hữu ích khi giữ cookie __utmz vì cookie này theo dõi khách truy cập đến từ đâu, công cụ tìm kiếm nào đã được sử dụng, cái gì liên kết được nhấp vào, từ khóa nào đã được sử dụng và chúng ở đâu trên thế giới khi trang web của bạn được truy cập.
Vì vậy, để giữ nó, hãy viết một câu lệnh if đơn giản khi tên cookie được biết:
...
aCookie = new HttpCookie(cookieName);
if (aCookie.Name != "__utmz")
{
aCookie.Value = "";
aCookie.Expires = DateTime.Now.AddDays(-1);
HttpContext.Current.Response.Cookies.Add(aCookie);
}
Session.Abandon
sẽ xóa cookie phiên ASP.NET, nhưng không xóa cookie bạn đặt theo cách thủ công, như userID ở đây. VàCookies["whatever"]
không bao giờ rỗng; khung sẽ tạo một cookie nếu bạn yêu cầu một cookie không tồn tại.