Pengoperasian
cookie lintas domain tampaknya merupakan masalah sederhana, karena Anda hanya perlu menentukan atribut Domain sebagai nama domain root dari situs web yang ditentukan.
Namun, penulis mengalami beberapa masalah selama penggunaan sebenarnya, yang memang perlu diperhatikan
Cookie di nama domain utama www Buat di bawah dan tulis atribut Domain, seperti: (Untuk kenyamanan debugging, semua kode berikut adalah kode asp)
Kode:
Write.asp
<%
Respon.Cookies(CookieName)("UserName") = "SunBird"
Respon.Cookies(NamaCookie)("Kata Sandi") = "xyz1234"
Respon.Cookies(CookieName).Domain = "xxxx.com"
%>
Kode
Read.aspuntuk membaca cookie ditempatkan di direktori yang sama
:Read.asp
<%
Respons.Permintaan Tulis.Cookies(CookieName)("UserName")
Respons.Permintaan Tulis.Cookies(CookieName)("Kata Sandi")
%>
Kemudian letakkan file Read.asp ke situs subdomain lain, dengan kode yang sama seperti di atas.
Terakhir, kita membuat Clear.asp lain untuk menghapus cookie dan menempatkannya di bawah nama domain utama.
Kode:
Clear.asp
<%
Respon.Cookies(NamaCookie)("Nama Pengguna") = ""
Respon.Cookies(NamaCookie)("Kata Sandi") = ""
Respon.Cookies(CookieName).Domain = "xxxx.com"
%>
Sekarang Anda dapat mengujinya melalui urutan eksekusi berikut, Write.asp-->Read.asp dari nama domain utama-->Read.asp dari nama subdomain. Semua halaman Read.asp dapat membaca nilai cookie yang dibuat oleh Write.asp lalu Jalankan Clear.asp lagi untuk menghapusnya, semuanya baik-baik saja, dan sepertinya tidak ada masalah.
Namun ada masalah saat menerapkan metode ini pada situs sebenarnya.
Deskripsi masalah:
Semuanya baik-baik saja saat masuk untuk pertama kalinya. Semua nama subdomain dapat mengakses cookie yang disimpan di nama domain utama. Namun, setelah Anda keluar, cookie dari nama subdomain akan dihapus, tetapi cookie dari nama domain utama akan dihapus masih tersimpan. Setelah menghapus paksa cookie dari nama domain utama, tidak peduli bagaimana Anda masuk ke nama domain utama, cookie tidak dapat disimpan kecuali Anda menutup browser dan membukanya kembali.
Setelah berkali-kali mencoba, saya tidak sengaja menemukan masalahnya. Berikut ini adalah proses pengujiannya.
Buat halaman Write2.asp dan letakkan di bawah nama domain utama
<%
Respon.Cookie(NamaCookie)("TEST_COOKIE") = "TEST_COOKIE"
%>
Langkah 1: Setelah menutup browser, jalankan dengan urutan berikut: Write.asp-->Read.asp dari nama domain utama-->Read.asp dari nama sub-domain.
Langkah 2: Clear.asp-->Read.asp dari nama domain utama-->Read.asp dari nama subdomain Operasi kliring berhasil di sini.
Langkah 3: Write.asp --> Write2.asp --> Nama domain utama Read.asp --> Nama subdomain Read.asp Pada titik ini, kedua Read.asp dapat membaca nilai cookie.
Langkah 4: Jalankan kembali langkah 2 dan temukan bahwa nama domain utama Read.asp masih menampilkan nilainya, sedangkan nilai Read.asp di bawah nama subdomain telah dihapus.
Berdasarkan pengujian di atas, kami merangkum poin-poin berikut yang perlu Anda perhatikan saat menggunakan cookie di seluruh domain:
1. Saat Anda memiliki grup Cookie (atau kamus Cookie) dan menggunakan atribut Domain untuk menentukan nama domain, saat Anda memodifikasi atau menambahkan anggota baru ke grup Saat menambahkan, pastikan untuk menambahkan atribut Resonse.Cookies(CookieName).Domain setelah operasi.
2. Jika tidak diperlukan, mohon jangan mengubah grup cookie yang domainnya telah ditetapkan, dan langsung gunakan Response.Cookies("CookieText") = CookieValue untuk membuat cookie baru.