Sessievariabelen gaan verloren als u FRAMESET gebruikt in Internet Explorer 6

Vertaalde artikelen Vertaalde artikelen
Artikel ID: 323752 - Bekijk de producten waarop dit artikel van toepassing is.
Alles uitklappen | Alles samenvouwen

Op deze pagina

Symptomen

Als u een FRAMESET implementeert waarvan de FRAMEs verwijzen naar andere websites op de netwerken van uw partners of binnen uw eigen netwerk, maar u andere namen voor topniveaudomeinen gebruikt, gaan de cookies die u in Internet Explorer 6 wilt instellen in deze FRAMEs verloren. Dit probleem betekent meestal dat de sessiestatus in een ASP-toepassing (Active Server Pages) of ASP.NET-webtoepassing verloren gaat. Als u een variabele wilt opvragen in een Session-object dat volgens u moet bestaan, wordt er dan een lege tekenreeks geretourneerd.

Dit probleem doet zich ook voor in de context van een FRAME als op uw webpagina's afwisselend gebruik wordt gemaakt van DNS-namen (Domain Name System) en IP-adressen (Internet Protocol).

Oorzaak

Vanaf Internet Explorer 6 wordt P3P (Platform for Privacy Preferences) ondersteund. In de P3P-norm is vastgelegd dat een verwijzing door een FRAMESET of een bovenliggend venster naar een andere site binnen een FRAME of een onderliggend venster betekent dat de inhoud van de onderliggende site als inhoud van een andere partij wordt beschouwd. Aangezien in Internet Explorer standaard de privacy-instelling Normaal wordt gebruikt, worden cookies van dergelijke sites zonder mededeling geweigerd.

Oplossing

U kunt dit voorkomen door een header met een compact P3P-beleid toe te voegen aan de inhoud van de onderliggende site en u kunt declareren dat er geen schadelijke acties worden uitgevoerd met de gegevens van de gebruiker. Als Internet Explorer een toegestaan beleid constateert, kan de cookie worden ingesteld.

Ga naar de volgende MSDN-website voor een complete lijst met toegestane en niet-toegestane beleidscodes:

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

Hieronder ziet u een eenvoudig compact beleid dat voldoet aan deze criteria:

P3P: CP="CAO PSA OUR"
				
Dit codevoorbeeld geeft aan dat uw site u toegang biedt tot uw eigen contactgegevens (CAO), dat er alleen 'pseudo-analyse' wordt toegepast op gegevens, wat inhoudt dat de gegevens worden gekoppeld aan uw online persona en niet aan uw fysieke identiteit (PSA) en dat uw gegevens niet worden verstrekt aan externe instanties voor gebruik door deze instanties (OUR).

U kunt deze header instellen als u de methode Response.AddHeader gebruikt op een ASP-pagina. In ASP.NET kunt u de methode Response.AppendHeader gebruiken. Gebruik de module IIS Management (inetmgr) om de header toe te voegen aan een statisch bestand.

Ga als volgt te werk om deze header toe te voegen aan een statisch bestand:
  1. Klik op Start, klik op Uitvoeren en typ inetmgr.
  2. Klik in het linkernavigatiedeelvenster op het bestand of de map in de website waaraan u de header wilt toevoegen, klik met de rechtermuisknop op het bestand en kies Eigenschappen.
  3. Klik op het tabblad HTTP-headers.
  4. Klik in de sectie Aangepaste HTTP-headers op Toevoegen.
  5. Typ P3P als de header-naam en typ CP=... als de tekenreeks voor het compacte beleid, waarbij u '...' vervangt door de juiste code voor het compacte beleid.
Een andere oplossing is dat Internet Explorer-gebruikers hun privacy-instellingen zodanig wijzigen dat ze altijd worden gevraagd of inhoud van een andere partij mag worden weergegeven. De privacy-instellingen kunnen als volgt worden gewijzigd:
  1. Start Internet Explorer.
  2. Klik op Extra en op Internet-opties.
  3. Open het tabblad Privacy en klik op Geavanceerd.
  4. Schakel het selectievakje Automatische cookie-verwerking opheffen in.
  5. Als u cookies voor ASP- en ASP.NET-sessies wilt accepteren, schakelt u het selectievakje Cookies per sessie altijd toestaan in.
  6. Als u voor elk type cookie van een andere partij een bevestiging wilt geven, selecteert u Vragen in de lijst Indirecte cookies.

Status

Dit gedrag is inherent aan het ontwerp van het product.

Meer informatie

Stappen om het gedrag te reproduceren:

  1. Maak een bestand met de naam TestFrameset.asp.
  2. Gebruik IP-adressen om een van de FRAMEs van het bestand te laten verwijzen naar een andere computer in het netwerk:
    <HTML>
    
    <FRAMESET ROWS="100%,*">
    <FRAME src="http://111.111.111.111/testFrame.asp"></FRAME>
    <FRAME src="about:blank"></FRAME>
    </FRAMESET>
    
    
    </HTML>
    					
  3. Maak op de externe computer een bestand TestFrame.asp zoals in het volgende voorbeeld:
    <HTML>
    
    <BODY>
    
    <%
    
    Response.write "Sessievariabele is " & Session("TestVar")
    Session("TestVar") = "Hallo daar!"
    
    %>
    
    <BODY>
    
    <FORM METHOD="POST">
    <INPUT type="submit" value="TestVar afdrukken">
    </FORM>
    
    </BODY>
    
    </HTML>
    					
  4. Ga naar TestFrameset.asp en klik op Form Submission.
Na het verzenden van het formulier wordt er niets weergegeven voor Session("TestVar"), terwijl deze vermelding de tekst 'Hallo daar!' zou moeten bevatten.

Referenties

Klik op de volgende artikelnummers in de Microsoft Knowledge Base voor meer informatie:
283185Cookies beheren in Internet Explorer 6
290333Beschrijving van het P3P-project (Platform for Privacy Preferences)
293222Standaard privacy-instellingen voor Internet Explorer 6

Eigenschappen

Artikel ID: 323752 - Laatste beoordeling: maandag 2 oktober 2006 - Wijziging: 3.0
De informatie in dit artikel is van toepassing op:
  • Microsoft Internet Explorer (Programming)
Trefwoorden: 
kbprb KB323752
Vrijwaring inhoud KB-artikelen over niet langer ondersteunde producten
Dit artikel heeft betrekking op producten waarvoor Microsoft geen ondersteuning meer biedt. Daarom wordt dit artikel alleen in de huidige vorm aangeboden en wordt het niet meer bijgewerkt.

Geef ons feedback

 

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