Istuntomuuttujat menetetään käytettäessä FRAMESETiä Internet Explorer 6:ssa

Artikkeleiden käännökset Artikkeleiden käännökset
Artikkelin tunnus: 323752 - Näytä tuotteet, joita tämä artikkeli koskee.
Laajenna kaikki | Kutista kaikki

Tällä sivulla

Oire

Jos toteutat FRAMESETin, jonka FRAME-kehykset osoittavat muihin kumppaniesi verkkojen tai verkkosi sisäisiin Web-sivustoihin, mutta käyttämäsi ylimmän toimialueen nimet eivät ole samat, saatat huomata Internet Explorer 6:ssa, että evästeet, jotka yrität määrittää kyseisiin FRAME-kehyksiin, menetetään. Tämä ilmenee useimmin istunnon tilan menettämisenä ASP (Active Server Pages)- tai ASP.NET-Web-sovelluksessa. Yrität käyttää sellaista Session-objektin muuttujaa, jonka odotat olevan olemassa, ja sen sijaan palautetaan tyhjä merkkijono.

Näet tämän ongelman FRAME-kehysten kontekstissa myös, jos Web-sivusi vaihtavat DNS (Domain Name System) -nimien ja IP (Internet Protocol) -osoitteiden käyttämisen välillä.

Syy

Internet Explorer 6 sisältää Platform for Privacy Preferences (P3P) -projektin tuen. P3P-standardi kertoo, että jos pääikkunan FRAMESET viittaa toiseen sivustoon FRAME-kehyksen sisällä tai ali-ikkunan sisällä, alisivustoa pidetään kolmannen osapuolen sisältönä. Internet Explorer, jonka tietosuojan oletusasetus on Normaali, hylkää kolmansien osapuolten sivustojen lähettämät evästeet erikseen ilmoittamatta.

Ratkaisu

Voit lisätä tiiviin P3P-käytäntöotsikon alisisältöösi ja määrittää, että käyttäjän tiedoille ei tehdä mitään haitallisia toimia. Jos Internet Explorer tunnistaa tyydyttävän käytännön, se sallii evästeen määrittämisen.

Täydellisen luettelon tyydyttävistä ja epätyydyttävistä käytäntökoodeista saat seuraavasta MSDN:n Web-sivustosta:

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

Seuraavassa on yksinkertainen tiivis käytäntö, joka täyttää tämän ehdon:

P3P: CP="CAO PSA OUR"
				
Tämä mallikoodi näyttää, että sivustosi tarjoaa käyttöön omat yhteystietosi (CAO), että kaikki analysoidut tiedot vain "pseudo-analysoidaan", eli tiedot liittyvät online-henkilöllisyyteen fyysisten tunnistetietojen (PSA) sijaan, ja että tietoja ei anneta millekään ulkopuoliselle taholle käytettäväksi (OUR).

Voit määrittää tämän otsikon käyttämällä ASP-sivullaResponse.AddHeader-menetelmää. ASP.NETissä voit käyttää Response.AppendHeader-menetelmää. IIS Management -apuohjelman (inetmgr) avulla voit lisätä otsikon staattiseen tiedostoon.

Voit lisätä tämän otsikon staattiseen tiedostoon seuraavasti:
  1. Napsauta Käynnistä-painiketta, valitse Suorita ja kirjoita sitten inetmgr.
  2. Valitse vasemmanpuoleisessa siirtymisruudussa Web-sivustosi tiedosto tai kansio, johon haluat lisätä otsikon, napsauta tiedostoa hiiren kakkospainikkeella ja valitse sitten Ominaisuudet.
  3. Valitse HTTP-otsikot-välilehti.
  4. Valitse Mukautetut HTTP-otsikot -ryhmäruudussa Lisää.
  5. Kirjoita otsikon nimeksi P3P ja tiiviin käytännön merkkijonoksi CP=..., jossa ... on tiiviin käytäntösi koodi.
Internet Explorer -käyttäjät voivat myös vaihtoehtoisesti muokata tietosuoja-asetuksiaan niin, että he saavat kehotteen kolmannen osapuolen sisällön hyväksymisestä. Seuraavissa vaiheissa esitellään, miten tietosuoja-asetuksia muokataan:
  1. Suorita Internet Explorer.
  2. Valitse Työkalut ja valitse sitten Internet-asetukset.
  3. Valitse Tietosuoja-välilehti ja valitse sitten Lisäasetukset.
  4. Valitse Ohita automaattinen evästeiden käsittely -valintaruutu.
  5. Jos haluat sallia ASP- ja ASP.NET-istuntoevästeiden määrittämisen, valitse Salli istunnon evästeet aina -valintaruutu.
  6. Jos haluat saada kehotteen kaikista kolmannen osapuolen evästeiden lajeista, valitse Kolmannen osapuolen evästeet -luettelossa Kysy vahvistus.

Tila

Tämä toiminta ei ole virhe.

Enemmän tietoa

Ongelman toistamisen vaiheet

  1. Luo tiedosto nimeltä TestFrameset.asp.
  2. Osoita jokin FRAME-kehyksistä verkon toisessa tietokoneessa olevaan tiedostoon IP-osoitteiden avulla:
    <HTML>
    
    <FRAMESET ROWS="100%,*">
    <FRAME src="http://111.111.111.111/testFrame.asp"></FRAME>
    <FRAME src="about:blank"></FRAME>
    </FRAMESET>
    
    
    </HTML>
    					
  3. Luo etätietokoneessa TestFrame.asp-tiedosto seuraavan esimerkin mukaiseksi:
    <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. Siirry TestFrameset.asp-tiedostoon ja valitse Form Submission (lomakkeen lähettäminen).
Huomaa lähettämisen jälkeen, että Session("TestVar")-merkintä tulostuu tyhjänä, vaikka sen pitäisi sisältää Hello, world! -teksti.

Suositukset

Saat lisätietoja napsauttamalla seuraavia artikkelien numeroita, jolloin pääset lukemaan artikkelit Microsoft Knowledge Base -tietokannassa:
283185 Evästeiden hallinta Internet Explorer 6:ssa
290333 P3P (Platform for Privacy Preferences) -projektin kuvaus (tämä artikkeli saattaa olla englanninkielinen)
293222 Internet Explorer 6:n oletusarvon mukaiset tietosuoja-asetukset (tämä artikkeli saattaa olla englanninkielinen)

Ominaisuudet

Artikkelin tunnus: 323752 - Viimeisin tarkistus: 10. lokakuuta 2006 - Versio: 3.0
Artikkelin tiedot koskevat seuraavia tuotteita:
  • Microsoft Internet Explorer (Programming)
Hakusanat: 
kbprb KB323752
Tätä KB-artikkelia ei enää päivitetä
Tämä artikkeli koskee tuotteita, joille Microsoft ei enää tarjoa tukea. Tämän vuoksi artikkeli tarjotaan sellaisenaan, eikä sitä enää päivitetä.

Anna palautetta

 

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