Variabel sesi hilang ketika Anda menggunakan FRAMESET pada Internet Explorer 6

Terjemahan Artikel Terjemahan Artikel
ID Artikel: 323752 - Melihat produk di mana artikel ini berlaku.
Perbesar semua | Perkecil semua

Pada Halaman ini

GEJALA

Jika Anda menerapkan FRAMESET yang memiliki titik FRAME ke Website lainnya pada jaringan mitra Anda atau di dalam jaringan Anda, tetapi Anda menggunakan nama domain tingkat atas, Anda mungkin melihat pada Internet Explorer 6 bahwa sembarang cookie yang Anda coba untuk mengatur tampilan FRAME-nya telah hilang. Ini sering sekali dialami ketika ada kehilangan sesi pada aplikasi web ASP (Active Server Pages) atau ASP.NET. Anda mencoba mengakses sebuah variabel pada objek Sesi yang Anda harapkan ada, namun yang muncul adalah string kosong.

Anda juga akan melihat masalah ini pada konteks FRAME apabila halaman Web Anda berganti-ganti antara penggunaan nama DNS (Domain Name System) dan penggunaan alamat IP (Internet Protocol).

PENYEBAB

Internet Explorer 6 memperkenalkan dukungan bagi Platform untuk Proyek P3P (Platform for Privacy Preferences). Standar P3P mencatat bahwa apabila sebuah FRAMESET atau jendela induk merujuk ke situs lain di dalam FRAME atau jendela anak, situs anak akan dianggap sebagai konten pihak ketiga. Internet Explorer, yang menggunakan pengaturan pribadi default Medium, diam-diam menolak cookie yang dikirim oleh situs pihak ketiga.

PEMECAHAN MASALAH

Anda dapat menambahkan tajuk kebijakan ringkas P3P ke konten anak, dan Anda dapat menyatakan bahwa tidak ada tindakan jahat yang dilakukan terhadap data pengguna. Apabila Internet Explorer mendeteksi kebijakan yang memadai, maka Internet Explorer mengizinkan cookie untuk ditetapkan.

Kunjungi Website MSDN berikut ini untuk sebuah daftar lengkap kode kebijakan yang memadai maupun tidak memadai:

Privasi pada Internet Explorer 6
http://msdn.microsoft.com/workshop/security/privacy/overview/privacyie6.asp

Kebijakan ringkas sederhana memenuhi kriteria berikut ini:

P3P: CP="CAO PSA OUR"
				
Contoh kode di atas menunjukkan bahwa situs Anda memberi Anda akses ke informasi kontak sendiri (CAO) di mana data yang dianalisis hanyalah "pseudo-analyzed", yang berarti bahwa data dihubungkan ke Anda secara online dan tidak ke identitas fisik Anda (PSA), dan bahwa data Anda tidak diberikan ke agensi luar mana pun untuk digunakan oleh agensi itu (OUR).

Anda dapat mengatur tajuk apabila Anda meggunakan metode Response.AddHeader pada halaman ASP. Pada ASP.NET, Anda dapat menggunakan metode Response.AppendHeader. Anda dapat menggunakan Snap-In Manajemen IIS (inetmgr) untuk menambah ke berkas statis.

Ikuti langkah-langkah ini untuk menambah tajuk ke berkas statis:
  1. Klik Mulai, klik Jalankan, kemudian ketik inetmgr.
  2. Pada halaman navigasi, klik berkas atau petunjuk yang sesuai pada Website yang ingin Anda tambahkan tajuknya, klik kanan berkas, kemudian klik Properti.
  3. Klik tab Header HTTP.
  4. Pada kotak grup Tajuk HTTP Kustom, klik Tambah.
  5. Ketik P3P untuk nama tajuk, kemudian untuk string kebijakan ringkas, ketik CP=..., di mana "..." adalah kode yang sesuai untuk kebijakan ringkas Anda.
Atau, pengguna Internet Explorer dapat mengubah pengaturan privasi mereka sehingga mereka akan ditanya apakah akan menerima konten pihak ketiga. Langkah-langkah berikut ini menunjukkan cara mengubah pengaturan pribadi:
  1. Jalankan Internet Explorer.
  2. Klik Alat, kemudian klik Opsi Internet.
  3. Klik tab Privasi, kemudian klik Lanjut.
  4. Klik untuk memilih kotak centang Kesampingkan penanganan cookie otomatis.
  5. Untuk membolehkan penetapan cookie dari sesi ASP dan ASP.NET, klik untuk memilih kotak centang Selalu membolehkan cookie sesi.
  6. Untuk mengatur agar Anda ditanya untuk jenis cookie pihak ketiga, klik Prompt pada daftar Cookie pihak ketiga.

STATUS

Perilaku ini memang merupakan bagian dari rancangan program.

INFORMASI LEBIH LANJUT

Langkah-langkah untuk mereproduksi perilaku

  1. Buat nama berkas TestFrameset.asp.
  2. Arahkan salah satu FRAME ke berkas di komputer lain pada jaringan Anda, melalui alamat IP:
    <HTML>
    
    <FRAMESET ROWS="100%,*">
    <FRAME src="http://111.111.111.111/testFrame.asp"></FRAME>
    <FRAME src="about:blank"></FRAME>
    </FRAMESET>
    
    
    </HTML>
    					
  3. Pada komputer jauh, buatlah TestFrame.asp seperti contoh berikut ini:
    <HTML>
    
    <BODY>
    
    <%
    
    Response.write "Session var is " & Session("TestVar")
    Session("TestVar") = "Halo, dunia!"
    
    %>
    
    <BODY>
    
    <FORM METHOD="POST">
    <INPUT type="submit" value="Print TestVar">
    </FORM>
    
    </BODY>
    
    </HTML>
    					
  4. Pinndahkan ke TestFrameset.asp, kemudian klik Pengiriman Formulir.
Perlu diperhatikan setelah pengiriman, bahwa entri Session("TestVar") mencetak kosong, walaupun seharusnya berisi "Halo, dunia!".

REFERENSI

Untuk informasi selengkapnya, klik nomor artikel berikut untuk melihat artikel pada Basis Pengetahuan Microsoft:
283185 Cara mengatur cookie di Internet Explorer 6 (Artikel ini mungkin berisi link ke konten berbahasa Inggris (belum diterjemahkan)).
290333 Penjelasan tentang proyek P3P (Platform for Privacy Preferences) (Artikel ini mungkin berisi link ke konten berbahasa Inggris (belum diterjemahkan)).
293222 Pengaturan privasi default untuk Internet Explorer 6 (Artikel ini mungkin berisi link ke konten berbahasa Inggris (belum diterjemahkan)).

Properti

ID Artikel: 323752 - Kajian Terakhir: 18 Juni 2007 - Revisi: 3.0
Berlaku bagi:
  • Microsoft Internet Explorer (Programming)
Kata kunci: 
kbprb KB323752
Sanggahan Konten KB yang Tidak Lagi Diperbarui
Artikel ini berisi tentang produk yang tidak lagi didukung oleh Microsoft. Oleh karena itu, artikel ini disajikan ?sebagaimana adanya? dan tidak akan diperbarui.

Berikan Masukan

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com