Sitzungsvariablen gehen verloren, wenn FRAMESET in Internet Explorer 6.0 verwendet wird

SPRACHE AUSWÄHLEN SPRACHE AUSWÄHLEN
Artikel-ID: 323752 - Produkte anzeigen, auf die sich dieser Artikel bezieht
Dieser Artikel ist eine Übersetzung des folgenden englischsprachigen Artikels der Microsoft Knowledge Base:
323752 Session variables are lost if you use FRAMESET in Internet Explorer 6
Bitte beachten Sie: Bei diesem Artikel handelt es sich um eine Übersetzung aus dem Englischen. Es ist möglich, dass nachträgliche Änderungen bzw. Ergänzungen im englischen Originalartikel in dieser Übersetzung nicht berücksichtigt sind. Die in diesem Artikel enthaltenen Informationen basieren auf der/den englischsprachigen Produktversion(en). Die Richtigkeit dieser Informationen in Zusammenhang mit anderssprachigen Produktversionen wurde im Rahmen dieser Übersetzung nicht getestet. Microsoft stellt diese Informationen ohne Gewähr für Richtigkeit bzw. Funktionalität zur Verfügung und übernimmt auch keine Gewährleistung bezüglich der Vollständigkeit oder Richtigkeit der Übersetzung.
Alles erweitern | Alles schließen

Auf dieser Seite

Problembeschreibung

Falls Sie einen FRAMESET implementieren, dessen FRAMEs auf andere Websites verweisen, die sich auf einem internen Netzwerk oder Partnernetzwerk befinden und Sie unterschiedliche Top-Level-Domänennamen verwenden, kann es dazu führen, dass gesetzte Cookies in diesen FRAMEs unter Internet Explorer 6 verloren gehen. Dies bewirkt in den meisten Fällen einen Verlust des Sitzungsstatus in einer ASP- oder ASP.NET-Webapplikation (ASP = Active Server Pages). Wenn Sie versuchen auf eine existierende Variable in dem Objekt Session zuzugreifen, wird unerwarteterweise ein leerer String ausgegeben.

Dieses Problem tritt auch in einem FRAME-Kontext auf, falls Ihre Webseiten sowohl DNS-Namen (DNS = Domain Name System) als auch IP-Adressen (IP = Internet Protocol) verwenden.

Ursache

Mit Internet Explorer 6 wurde die Unterstützung für das P3P-Projekt (P3P = Platform for Privacy Preferences) implementiert. In den P3P-Standardhinweisen wird darauf hingewiesen, dass die Inhalte einer untergeordneten Site als Fremdinhalte angesehen werden, wenn ein FRAMESET oder ein Hauptfenster auf eine andere Seite in einem FRAME oder einem Unterfenster verweist. Wenn Sie in Internet Explorer die Datenschutzstufe Mittel auswählen, werden Cookies von Fremdanbieter-Sites automatisch abgelehnt.

Lösung

Sie können einen kompakten P3P-Richtlinienheader zu den untergeordneten Inhalten hinzufügen und so festlegen, dass keine böswilligen Aktionen mit den Benutzerdaten durchgeführt werden. Wenn der Internet Explorer eine akzeptable Richtlinie erkannt hat, erlaubt er die Einrichtung von Cookies.

Besuchen Sie die folgenden MSDN-Websites, um eine komplette Liste von akzeptablen und inakzeptablen Richtliniencodes zu erhalten:

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

Eine einfache, kompakte Richtlinie, die diese Kriterien erfüllt:

P3P: CP="CAO PSA OUR"
				
Dieses Codebeispiel zeigt, dass Ihre Site Ihnen Zugriff auf Ihre eigenen Kontaktinformationen bietet (CAO) und dass die Daten nur "pseudo-analysiert" werden, d. h. die Daten werden Ihrer Online-Identität zugewiesen und nicht Ihrer physikalischen Identität (PSA). Außerdem wird festgelegt, dass die Daten an keine externen Agenturen weitergegeben werden (OUR).

Sie können diese Kopfzeile konfigurieren, wenn Sie die Methode Response.AddHeader in einer ASP-Seite anwenden. In ASP.NET können Sie die Methode Response.AppendHeader verwenden. Sie können das IIS-Verwaltungs-Snap-In (inetmgr), um eine statische Datei hinzu zu fügen.

Gehen Sie folgendermaßen vor, um diese Kopfzeile zu einer statischen Datei hinzu zu fügen:
  1. Klicken Sie auf Start, klicken Sie auf Ausführen, und geben Sie in das Feld Öffnen die Zeichenfolge inetmgr ein.
  2. Fügen Sie die Kopfzeile hinzu, indem Sie im linken Fensterbereich auf die entsprechende Datei oder das Verzeichnis innerhalb Ihrer Website mit der rechten Maustaste klicken und anschließend auf Eigenschaften klicken.
  3. Klicken Sie auf die Registerkarte HTTP-Header.
  4. Klicken Sie im Gruppenfeld Benutzerdefinierte HTTP-Header auf Hinzufügen.
  5. Geben Sie als Kopfzeilenname P3P ein und als unternehmensspezifische Richtlinie CP=... ein, dabei steht "..." für den akzeptablen Code für Ihre kompakte Richtlinie.
Internet Explorer-Benutzer können Ihre Datenschutz-Einstellungen so anpassen, dass sie bei Fremdanbieter-Inhalten aufgefordert werden, diese anzunehmen. Gehen Sie folgendermaßen vor, um Ihre Datenschutzeinstellungen anzupassen:
  1. Starten Sie Internet Explorer.
  2. Klicken Sie im Menü Extras auf Internetoptionen.
  3. Klicken Sie auf die Registerkarte Datenschutz, und klicken Sie anschließend auf Erweitert.
  4. Aktivieren Sie das Kontrollkästchen Automatische Verarbeitung von Cookies überschreiben.
  5. Damit Sitzungscookies für ASP und ASP.NET gesetzt werden können, markieren Sie das Kontrollkästchen Sitzungscookies immer zulassen.
  6. Wenn Sie bei jedem Fremdanbieter-Cookie eine Eingabeaufforderung erhalten möchten, klicken Sie im Bereich Cookies von Fremdanbietern auf Eingabeaufforderung.

Status

Es handelt sich hierbei um ein beabsichtigtes Verhalten.

Weitere Informationen

Schritte zum Reproduzieren des Verhaltens

  1. Erstellen Sie eine Datei mit dem Namen "TestFrameset.asp".
  2. Verweisen Sie einen der FRAMEs auf die Datei auf einen anderen Computer in Ihrem Netzwerk über der IP-Adresse:
    <HTML>
    
    <FRAMESET ROWS="100%,*">
    <FRAME src="http://111.111.111.111/testFrame.asp"></FRAME>
    <FRAME src="about:blank"></FRAME>
    </FRAMESET>
    
    
    </HTML>
    					
  3. Erstellen Sie auf dem Remote-Computer die Datei "TestFrame.asp" folgendermaßen:
    <HTML>
    
    <BODY>
    
    <%
    
    Response.write "Session var is " & Session("TestVar")
    Session("TestVar") = "Hello, world!"
    
    %>
    
    <BODY>
    
    <FORM METHOD="POST">
    <INPUT type="submit" value="Print TestVar">
    </FORM>
    
    </BODY>
    
    </HTML>
    					
  4. Gehen Sie auf die Seite "TestFrameset.asp", und klicken Sie auf Formular einschicken (Form Submission).
Nach dem Senden werden die Eingangswerte von Session("TestVar") leer sein, obwohl Sie den String "Hello, world!" enthalten sollten.

Informationsquellen

Weitere Informationen finden Sie in den folgenden Artikeln der Microsoft Knowledge Base:
283185 Verwalten von Cookies in Internet Explorer 6
290333 Beschreibung des Platform for Privacy Preferences (P3P)-Projekts
293222 Standard-Datenschutzeinstellungen für Internet Explorer 6

Eigenschaften

Artikel-ID: 323752 - Geändert am: Donnerstag, 1. Juni 2006 - Version: 3.0
Die Informationen in diesem Artikel beziehen sich auf:
  • Microsoft Internet Explorer (Programming)
Keywords: 
kbprb KB323752
Microsoft stellt Ihnen die in der Knowledge Base angebotenen Artikel und Informationen als Service-Leistung zur Verfügung. Microsoft übernimmt keinerlei Gewährleistung dafür, dass die angebotenen Artikel und Informationen auch in Ihrer Einsatzumgebung die erwünschten Ergebnisse erzielen. Die Entscheidung darüber, ob und in welcher Form Sie die angebotenen Artikel und Informationen nutzen, liegt daher allein bei Ihnen. Mit Ausnahme der gesetzlichen Haftung für Vorsatz ist jede Haftung von Microsoft im Zusammenhang mit Ihrer Nutzung dieser Artikel oder Informationen ausgeschlossen.
Disclaimer zu nicht mehr gepflegten KB-Inhalten
Dieser Artikel wurde für Produkte verfasst, für die Microsoft keinen Support mehr anbietet. Der Artikel wird deshalb in der vorliegenden Form bereitgestellt und nicht mehr weiter aktualisiert.

Ihr Feedback an uns

 

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