Problema com session em frame / iframe no Internet Explorer

por adlerparnas

Fala pessoal!

Hoje estou aqui para mostrar uma solução para os problemas com sessões nos  frames/iframes no Internet Explorer versões 6, 7 e 8. Não sou muito adepto aos  elementos  frame e iframe, mas sei que muitas pessoas usam e que são uma ótimo recurso.

Desenvolvendo um projeto no meu trabalho, nossa página seria aberta em  um iframe na  aplicação do cliente. Eis que me aparece o problema, a sessão do usuário em nosso sistema  não era gravada.

Pesquisando pela WEB, descobri no site ASPBRASIL que o problema acontecia por causa de uma diretiva de segurança do Internet Explorer que restringe a gravação de cookies na máquina do usuário. Essa diretiva denominada P3P é descrita pelo W3C.

Seguindo as instruções do site ASPBRASIL, basta alterar a propriedade P3P no cabeçalho do HTTP para que a página consiga gravar os cookies na máquina do cliente. Aqui senha um exemplo em ASP e em PHP de como alterar essa diretiva no cabeçalho HTTP.

<%
Response.AddHeader("P3P", "CP=\"IDC DSP COR CURa ADM ADMa DEVi TAIi PSA PSD IVAi IVDi CONi HIS OUR IND CNT PHY ONL COM STA\"");
%>
<?php
header('P3P: CP="IDC DSP COR CURa ADM ADMa DEVi TAIi PSA PSD IVAi IVDi CONi HIS OUR IND CNT PHY ONL COM STA"');
?>

ATENÇÃO: a diretiva deve ser alterada na página que irá abrir dentro do frame.

Ainda não estudei todas essas diretivas, mais sei que vai funcionar! 😀

É isso ai pessoal! Espero que essa dica seja útil a todos vocês e caso tenha dito algo errado,  favor me corrijam!

Fontes:

Anúncios

12 Comentários to “Problema com session em frame / iframe no Internet Explorer”

  1. Belo artigo, parabéns!

    Apenas uma pequena correção ortográfica: está escrito “ANTEÇÃO” ao invés de “ATENÇÃO”.

    Não lembro se havia comentado antes, mas estou acompanhando o blog =) continue com o bom trabalho!

  2. AEEE!!!!
    no penúltimo dia do ano voce me ajudou a salvar minha aplicação!!!
    graças a voce vou poder passar o ano novo tranquilo sem pensar em código!!!

  3. Duvido que funcione no safari…

  4. Oi tenho uma aplicação PHP que consome um sistema no seu IFRAME, a tag tem que estar tanto nas páginas dentro do IFRAME e também na página PAI da aplicação PHP?

    obrigado…

  5. Você salvou a minha vida! #fato
    Eternamente grato! rsrsrsrs

  6. Problema resolvido.
    Vlw amigo

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s

%d blogueiros gostam disto: