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)
Write.asp
kode program
<%
Respon.Cookies(CookieName)("UserName") = "SunBird"
Respon.Cookies(NamaCookie)("Kata Sandi") = "xyz1234"
Respon.Cookies(CookieName).Domain = "xxxx.com"
%>
Read.asp
untuk membaca cookie ditempatkan di direktori yang sama.
kode program
<%
Respons.Permintaan Tulis.Cookies(CookieName)("UserName")
Respons.Permintaan Tulis.Cookies(CookieName)("Kata Sandi")
%>
Kemudian letakkan dokumen Read.asp ke situs subdomain lain, dengan kode yang sama seperti di atas. Terakhir, kami membuat Clear.asp lain untuk menghapus cookie dan menempatkannya di bawah nama domain utama
Clear.asp
kode program
<%
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. Setiap halaman Read.asp dapat membaca nilai cookie yang dibuat oleh Write.asp. Kemudian jalankan Clear.asp untuk menghapusnya, semuanya baik-baik saja, http://bizhi.downcodes.com/ 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. Nama subdomain apa pun 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 nama domain masih dipertahankan. Nama domain utama dihapus secara paksa Setelah mengatur cookie, 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
kode program
<%
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. Semua Read.asp di sini terbaca secara normal.
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 dari domain yang dikonfigurasi. Langsung gunakan Response.Cookies("CookieText") = CookieValue untuk membuat cookie baru.