Perdita delle variabili di sessione se si utilizza un FRAMESET in Internet Explorer 6

Traduzione articoli Traduzione articoli
Identificativo articolo: 323752 - Visualizza i prodotti a cui si riferisce l?articolo.
Espandi tutto | Chiudi tutto

In questa pagina

Sintomi

Se si implementa un FRAMESET i cui FRAME puntano ad altri siti Web nelle reti dei partner o nella rete interna, ma si utilizzano diversi nomi di dominio di livello superiore, Ŕ possibile che i cookie che si tenta di impostare in tali FRAME vadano persi in Internet Explorer 6. Questa condizione si traduce con maggiore frequenza in una perdita dello stato della sessione in un'applicazione Web ASP (Active Server Pages) o ASP.NET. Si tenta di accedere a una variabile nell'oggetto Session di cui si prevede l'esistenza e viene invece restituita una stringa vuota.

Questo problema Ŕ evidente anche in un contesto di FRAME se nelle pagine Web si utilizzano alternativamente nomi DNS (Domain Name System) e indirizzi IP (Internet Protocol).

Cause

In Internet Explorer 6 Ŕ stato introdotto il supporto per lo standard Platform for Privacy Preferences Project (P3P). Secondo questo standard, se un FRAMESET o una finestra padre fa riferimento a un altro sito all'interno di un FRAME o di una finestra secondaria, il sito secondario viene considerato contenuto di terze parti. L'impostazione predefinita di Internet Explorer per la privacy, corrispondente al livello Medio, prevede il rifiuto dei cookie inviati da siti di terze parti.

Risoluzione

╚ possibile aggiungere un'intestazione con criteri compatti P3P al contenuto secondario e dichiarare che i dati dell'utente non saranno soggetti ad azioni pericolose. Se i criteri vengono considerati soddisfacenti, sarÓ consentita l'impostazione del cookie.

Per un elenco completo dei codici di criteri soddisfacenti e non soddisfacenti, visitare il seguente sito Web MSDN (informazioni in lingua inglese):

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

Di seguito Ŕ riportato un semplice criterio compatto considerato soddisfacente:

P3P: CP="CAO PSA OUR"
				
In questo codice di esempio Ŕ indicato che il sito consente l'accesso alle informazioni sul contatto (CAO), che i dati analizzati vengono solo "pseudo-analizzati", ossia vengono collegati all'identitÓ in linea e non all'identitÓ fisica dell'utente (PSA), e che i dati dell'utente non vengono forniti ad agenzie esterne ad uso di queste ultime (OUR).

Questa intestazione pu˛ essere impostata se si utilizza il metodo Response.AddHeader in una pagina ASP. In ASP.NET Ŕ possibile utilizzare il metodo Response.AppendHeader. Per integrare un file statico Ŕ possibile utilizzare lo snap-in di gestione di IIS (inetmgr).

Per aggiungere l'intestazione a un file statico, attenersi alla seguente procedura:
  1. Fare clic sul pulsante Start, scegliere Esegui, quindi digitare inetmgr.
  2. Nel riquadro di spostamento di sinistra fare clic con il pulsante destro del mouse sul file o sulla directory appropriata nel sito Web in cui si desidera aggiungere l'intestazione, quindi scegliere ProprietÓ.
  3. Fare clic sulla scheda Intestazioni HTTP.
  4. Nella casella di gruppo Intestazioni HTTP personalizzate fare clic su Aggiungi.
  5. Digitare P3P come nome dell'intestazione, quindi digitare CP=... come stringa del criterio compatto, dove "..." Ŕ il codice appropriato per il criterio compatto.
In alternativa, gli utenti di Internet Explorer possono modificare le impostazioni relative alla privacy in modo che venga chiesto se si desidera accettare contenuto di terze parti. Per modificare le impostazioni relative alla privacy, attenersi alla seguente procedura:
  1. Eseguire Internet Explorer.
  2. Scegliere Opzioni Internet dal menu Strumenti.
  3. Fare clic sulla scheda Privacy, quindi scegliere Avanzate.
  4. Selezionare la casella di controllo Sostituisci gestione automatica cookie.
  5. Per consentire l'impostazione di cookie delle sessioni ASP e ASP.NET, selezionare la casella di controllo Accetta sempre i cookie della sessione.
  6. Per ricevere una richiesta di conferma per tutti i tipi di cookie di terze parti, fare clic su Chiedi conferma nell'elenco Cookie di terze parti.

Status

Si tratta di un problema legato alla progettazione del prodotto.

Informazioni

Procedura per riprodurre il problema

  1. Creare un file denominato TestFrameset.asp.
  2. Fare in modo che uno dei FRAME del file faccia riferimento a un altro computer nella rete mediante gli indirizzi IP:
    <HTML>
    
    <FRAMESET ROWS="100%,*">
    <FRAME src="http://111.111.111.111/testFrame.asp"></FRAME>
    <FRAME src="about:blank"></FRAME>
    </FRAMESET>
    
    
    </HTML>
    					
  3. Sul computer remoto creare un file TestFrame.asp come nell'esempio seguente:
    <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. Passare a TestFrameset.asp e fare clic su Modulo di registrazione.
Dopo l'invio la voce Session("TestVar") risulta vuota, mentre dovrebbe contenere la stringa "Hello, world!".

Riferimenti

Per ulteriori informazioni, fare clic sui numeri degli articoli della Microsoft Knowledge Base riportati di seguito:
283185 Gestione dei cookie in Internet Explorer 6
290333 Descrizione di Platform for Privacy Preferences Project (P3P)
293222 Impostazioni di privacy predefinite per Internet Explorer 6

ProprietÓ

Identificativo articolo: 323752 - Ultima modifica: venerdý 21 aprile 2006 - Revisione: 3.0
Le informazioni in questo articolo si applicano a:
  • Microsoft Internet Explorer (Programming)
Chiavi:á
kbprb KB323752
LE INFORMAZIONI CONTENUTE NELLA MICROSOFT KNOWLEDGE BASE SONO FORNITE SENZA GARANZIA DI ALCUN TIPO, IMPLICITA OD ESPLICITA, COMPRESA QUELLA RIGUARDO ALLA COMMERCIALIZZAZIONE E/O COMPATIBILITA' IN IMPIEGHI PARTICOLARI. L'UTENTE SI ASSUME L'INTERA RESPONSABILITA' PER L'UTILIZZO DI QUESTE INFORMAZIONI. IN NESSUN CASO MICROSOFT CORPORATION E I SUOI FORNITORI SI RENDONO RESPONSABILI PER DANNI DIRETTI, INDIRETTI O ACCIDENTALI CHE POSSANO PROVOCARE PERDITA DI DENARO O DI DATI, ANCHE SE MICROSOFT O I SUOI FORNITORI FOSSERO STATI AVVISATI. IL DOCUMENTO PUO' ESSERE COPIATO E DISTRIBUITO ALLE SEGUENTI CONDIZIONI: 1) IL TESTO DEVE ESSERE COPIATO INTEGRALMENTE E TUTTE LE PAGINE DEVONO ESSERE INCLUSE. 2) I PROGRAMMI SE PRESENTI, DEVONO ESSERE COPIATI SENZA MODIFICHE, 3) IL DOCUMENTO DEVE ESSERE DISTRIBUITO INTERAMENTE IN OGNI SUA PARTE. 4) IL DOCUMENTO NON PUO' ESSERE DISTRIBUITO A SCOPO DI LUCRO.
Dichiarazione di non responsabilitÓ per articoli della Microsoft Knowledge Base su prodotti non pi¨ supportati
Questo articolo Ŕ stato scritto sui prodotti per cui Microsoft non offre pi¨ supporto. L?articolo, quindi, viene offerto ?cosý come Ŕ? e non verrÓ pi¨ aggiornato.

Invia suggerimenti

 

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