Při použití sady rámců v aplikaci Internet Explorer 6 budou ztraceny proměnné relace

Překlady článku Překlady článku
ID článku: 323752 - Produkty, které se vztahují k tomuto článku.
Rozbalit všechny záložky | Minimalizovat všechny záložky

Na této stránce

Příznaky

Pokud implementujete sadu rámců (FRAMESET), jejíž rámce (FRAME) ukazují na jiné weby v sítích partnerů nebo uvnitř vaší sítě, ale použijete jiné názvy domén nejvyšší úrovně, můžete v aplikaci Internet Explorer 6 pozorovat, že všechny soubory cookie, které se pokoušíte v těchto rámcích nastavit, se projevují jako ztracené. To se nejčastěji projevuje jako ztráta stavu relace ve webové aplikaci typu ASP (Active Server Pages) nebo ASP.NET. Pokusíte-li se o přístup k proměnné v objektu Session (Relace), která by měla existovat, je místo její hodnoty vrácen prázdný řetězec.

Tento problém se projevuje také v kontextu rámců (FRAME), jestliže webové stránky střídavě používají názvy DNS (Domain Name System) a adresy IP (Internet Protocol).

Příčina

V aplikaci Internet Explorer 6 byla zavedena podpora projektu P3P (Platform for Privacy Preferences). Standard P3P upozorňuje na to, že pokud sada rámců (FRAMESET) nebo nadřazené okno odkazuje na jiný web uvnitř rámce (FRAME) nebo uvnitř podřízeného okna, je podřízený web považován za obsah třetí strany. Aplikace Internet Explorer, která používá výchozí nastavení ochrany osobních údajů Střední, bez upozornění odmítá soubory cookie poslané z webů třetích stran.

Řešení

K podřízenému obsahu můžete přidat hlavičku zásady komprese P3P a deklarovat, že s daty uživatele se neprovádějí žádné škodlivé akce. Pokud aplikace Internet Explorer zjistí vyhovující zásadu, dovolí nastavení souboru cookie.

Úplný seznam kódů vyhovujících a nevyhovujících zásad naleznete na následujícím webu MSDN:

Privacy in Internet Explorer 6 (Ochrana osobních údajů v aplikaci Internet Explorer 6)
http://msdn.microsoft.com/workshop/security/privacy/overview/privacyie6.asp

Toto je jednoduchá zásada komprese, která této podmínce vyhovuje:

P3P: CP="CAO PSA OUR"
				
Z této ukázky kódu je zřejmé, že web poskytuje přístup k vlastním kontaktním informacím (CAO), že veškerá analyzovaná data jsou pouze pseudoanalyzována, což znamená, že data jsou spojována s osobou online, nikoli s fyzickou identitou (PSA), a že data nejsou poskytována k použití žádným vnějším organizacím (OUR).

Tuto hlavičku je možné ve stránce ASP nastavit použitím metody Response.AddHeader. V aplikaci ASP.NET lze použít metodu Response.AppendHeader. K přidání hlavičky ke statickému souboru je možné použít modul snap-in pro správu služby IIS (inetmgr).

Při přidání této hlavičky ke statickému souboru postupujte takto:
  1. Klepněte na tlačítko Start, potom na příkaz Spustit a zadejte příkaz inetmgr.
  2. V levé navigační stránce klepněte na příslušný soubor nebo adresář na vašem webu, ke kterému chcete přidat hlavičku, klepněte pravým tlačítkem myši na soubor a poté klepněte na příkaz Vlastnosti.
  3. Klepněte na kartu Hlavička protokolu HTTP.
  4. Ve skupinovém rámečku Vlastní hlavičky protokolu HTTP klepněte na tlačítko Přidat.
  5. Jako název hlavičky zadejte P3P a jako řetězec zásady komprese zadejte CP=..., kde „...“ je příslušný kód zásady komprese.
Uživatelé aplikace Internet Explorer mohou případně upravit svá nastavení ochrany osobních údajů tak, aby se jim zobrazovala výzva k přijetí obsahu třetí strany. Toto je postup změny nastavení ochrany osobních údajů:
  1. Spusťte aplikaci Internet Explorer.
  2. Klepněte na nabídku Nástroje a na příkaz Možnosti Internetu.
  3. Klepněte na kartu Osobní údaje a poté na tlačítko Upřesnit.
  4. Zaškrtněte políčko Přepsat automatickou správu souborů cookie.
  5. Povolte nastavení souborů cookie relací ASP a ASP.NET zaškrtnutím políčka Vždy povolit soubory cookie relací.
  6. Klepněte na přepínač Dotázat se v seznamu Cizí soubory cookie. Tím nastavíte zobrazení dotazu pro jakýkoli typ souboru cookie třetí strany.

Prohlášení

Toto chování je záměrné.

Další informace

Kroky pro reprodukci tohoto chování

  1. Vytvořte soubor s názvem TestFrameset.asp.
  2. V tomto souboru se v jednom z rámců (FRAME) odkažte pomocí adresy IP na jiný počítač ve vaší síti:
    <HTML>
    
    <FRAMESET ROWS="100%,*">
    <FRAME src="http://111.111.111.111/testFrame.asp"></FRAME>
    <FRAME src="about:blank"></FRAME>
    </FRAMESET>
    
    
    </HTML>
    					
  3. Ve vzdáleném počítači vytvořte soubor TestFrame.asp jako v následujícím příkladu:
    <HTML>
    
    <BODY>
    
    <%
    
    Response.write "Session var is " & Session("TestVar")
    Session("TestVar") = "Ahoj!"
    
    %>
    
    <BODY>
    
    <FORM METHOD="POST">
    <INPUT type="submit" value="Print TestVar">
    </FORM>
    
    </BODY>
    
    </HTML>
    					
  4. Přejděte k souboru TestFrameset.asp a klepněte na tlačítko Form Submission (Odeslání formuláře).
Povšimněte si, že po odeslání se položka Session("TestVar") vypíše jako prázdná, přestože by měla obsahovat řetězec Ahoj!.

Odkazy

Další informace naleznete v následujících článcích znalostní báze Microsoft Knowledge Base:
283185 Správa souborů cookie v aplikaci Internet Explorer 6
290333 Popis projektu P3P (Platform for Privacy Preferences) (Tento článek může obsahovat odkazy na anglický obsah (dosud nepřeložený).)
293222 Výchozí nastavení ochrany osobních údajů v aplikaci Internet Explorer 6 (Tento článek může obsahovat odkazy na anglický obsah (dosud nepřeložený).)

Vlastnosti

ID článku: 323752 - Poslední aktualizace: 21. července 2006 - Revize: 3.0
Informace v tomto článku jsou určeny pro produkt:
  • Microsoft Internet Explorer (Programming)
Klíčová slova: 
kbprb KB323752
Právní omezení pro obsah znalostní báze týkající se produktů, jejichž podpora byla ukončena
Tento článek byl napsán o produktech, pro které společnost Microsoft již neposkytuje nadále podporu. Článek je tedy nabízen v takovém stavu, v jakém je, a nebude již nadále aktualizován.

Dejte nám zpětnou vazbu

 

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