O cookie pode ser perdido quando uma janela é aberta em uma caixa de diálogo HTML restrita ou sem janela restrita no Internet Explorer 6

IMPORTANTE: Este artigo foi traduzido por um sistema de tradução automática (também designado por Machine Translation ou MT), não tendo sido portanto traduzido ou revisto por pessoas. A Microsoft possui artigos traduzidos por aplicações (MT) e artigos traduzidos por tradutores profissionais, com o objetivo de oferecer em português a totalidade dos artigos existentes na base de dados de suporte. No entanto, a tradução automática não é sempre perfeita, podendo conter erros de vocabulário, sintaxe ou gramática. A Microsoft não é responsável por incoerências, erros ou prejuízos ocorridos em decorrência da utilização dos artigos MT por parte dos nossos clientes. A Microsoft realiza atualizações freqüentes ao software de tradução automática (MT). Obrigado.

Clique aqui para ver a versão em Inglês deste artigo: 831678
Aviso de Isenção de Responsabilidade sobre Conteúdo do KB Aposentado
Este artigo trata de produtos para os quais a Microsoft não mais oferece suporte. Por esta razão, este artigo é oferecido "como está" e não será mais atualizado.
Sintomas
Quando o Microsoft Internet Explorer abre uma nova janela de uma caixa de diálogo restrita ou sem janela restrita do HTML, a nova janela pode aparecer em um processo diferente e não contém as informações de cookie da caixa de diálogo.
Causa
Esse comportamento ocorre porque janelas do Internet Explorer abertas a partir de um de uma janela restrita ou sem janela restrita HTML caixa de diálogo não pode ser aberta no mesmo processo.
Como Contornar
Para contornar esse comportamento, passar o objeto da janela do pai da caixa de diálogo para a caixa de diálogo e, em seguida, usar esse objeto para abrir a nova janela.
Situação
Esse comportamento é por design.
Mais Informações
Quando Internet Explorer abre uma janela de uma caixa de diálogo restrita ou sem janela restrita HTML usando o método showModalDialog ou usando o método showModelessDialog , o Internet Explorer usa COM (Component Object Model) para criar uma nova instância da janela. Normalmente, a janela é aberta usando a primeira instância de um processo do Internet Explorer existente. Esse processo é diferente do processo que o Internet Explorer utiliza para abrir uma nova janela usando o método window.open .

Quando Internet Explorer abre a janela em um novo processo, todos os cookies de memória não estarão mais disponíveis, incluindo a identificação de sessão.

Código de exemplo

O seguinte código de exemplo é um exemplo da solução alternativa:

Parent.ASP

<html><script language="javascript">function MyShowModal(){	var args = new Object;	args.window = window;	showModalDialog("modal.asp", args);}</script><body>Parent Page<br><span>Session ID : <%=Session.SessionID%></span><br><button onclick="MyShowModal()">Show modal dialog box</button></body></html>

Modal.ASP

<html><body>Modal Page<br><span>Session ID : <%=Session.SessionID%></span><br><button  onclick=    "dialogArguments.window.open('page1.asp')">Open Page 1 (workaround)</button><br><button  onclick=    "window.open('page1.asp')">Open Page 1 (problem)</button></body></html>

Page1.ASP

<html><body>Page 1<br><span>Session ID : <%=Session.SessionID%></span></body></html>
Para testar a solução alternativa, execute essas etapas:
  1. Salve os arquivos de código de exemplo Parent.asp Modal.asp e Page1.asp em um servidor Web.
  2. Em um computador cliente, iniciar duas instâncias novas do Internet Explorer.
  3. Abra Parent.asp na segunda instância do Internet Explorer. Observe a identificação da sessão na página da Web.
  4. Clique em Mostrar caixa de diálogo restrita para abrir a caixa de diálogo modal do HTML. Observe a identificação da sessão na caixa de diálogo.
  5. Clique em Abrir página 1 (problema) para ver o problema. Uma nova janela aparece. No entanto, a identificação da sessão é diferente da identificação de sessão que você tenha percebido nas etapas 3 e 4.
  6. Clique em Abrir página 1 (solução) para ver a solução alternativa. Uma nova janela aparece, e a identificação da sessão nessa janela é o mesmo que a identificação da sessão que você tenha percebido nas etapas 3 e 4.

O Outlook Web Access

Esse problema ocorre com freqüência no Microsoft Outlook Web Access (OWA). Para reproduzir esse problema no OWA, execute essas etapas:
  1. Feche todas as instâncias do Internet Explorer.
  2. Inicie duas instâncias do Internet Explorer.
  3. Na segunda instância do Internet Explorer, faça logon no OWA.
  4. Selecione uma mensagem e, em seguida, clique em responder . A janela de resposta é exibida.
  5. Na janela de resposta, clique duas vezes em endereço de email do destinatário para abrir as Propriedades do email--caixa de diálogo página da Web caixa de diálogo.
  6. Clique em Adicionar a contatos . Uma nova janela aparece. No entanto, a nova janela contém a página de logon do Outlook Web Access em vez do contato.
A nova janela contém a página de logon do Outlook Web Access porque a nova janela aberta na primeira instância do Internet Explorer. A primeira instância do Internet Explorer não tem as informações do cookie de logon.

Aviso: este artigo foi traduzido automaticamente

Propriedades

ID do Artigo: 831678 - Última Revisão: 10/28/2005 15:49:37 - Revisão: 3.0

Microsoft Internet Explorer (Programming) 6 (SP1), Microsoft Internet Explorer (Programming) 6.0

  • kbmt kbhtml kbdhtml kbprb KB831678 KbMtpt
Comentários