IE11은 새 탭을 타겟팅하는 링크를 클릭하면 세션 쿠키를 보내지 않습니다 (첫 번째 요청시)
-
21-12-2019 - |
문제
IE11에서 초기 새 탭 (Target _Blank)을 열 때 세션에 몇 가지 문제가 발생합니다.
IE11의 모든 인스턴스를 닫은 다음 새 브라우저를 열고 웹 페이지 테스트 (default.aspx)로 이동합니다. 페이지는 세션에 값을 저장하고 페이지에 세션 ID를 표시합니다. 페이지를 새로 고치면 세션 ID가 동일하게 유지됩니다. 페이지에는 _blank의 대상이있는 자체 링크가 있습니다 (default.aspx). 이 링크를 클릭하면 새 탭이 열리지 만 세션 ID가 다릅니다. 그런 다음 원래 창을 새로 고치면 세션 ID가 새 창과 일치합니다.
<%@ Page Language="C#" AutoEventWireup="true" Inherits="System.Web.UI.Page" %>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
</head>
<body>
<% Session["StoredValue"]="Test"; %>
<div>SessionID: <%=Session.SessionID%></div>
<a href="/default.aspx" target="_blank">New Window</a>
<a href="http://www.google.com" target="_blank">3rd Party Window</a>
</body>
</html>
.
이 문제는 새 탭에서 열린 동일한 도메인의 첫 번째 창에 대해서만 발생합니다 (나는 target="_ 공백으로 문제를 확인하고 링크를 클릭하는 동안 Ctrl을 들고 Ctrl을 보관 함).
- Fiddler로 쿠키 트래픽을 볼 때 나는 그것을 볼 수 있습니다. 세션 쿠키는 초기 요청에서 정상적으로 전송됩니다. default.aspx. 링크를 클릭하여 새 탭에서 페이지를 엽니 다. 세션 쿠키가 요청 헤더에서 전송되지 않습니다.
- 브라우저를 다시 시작하면 테스트 페이지로 이동하여 새 탭을여십시오. 수동으로 링크 대상을 붙여 넣습니다. 쿠키가 전송됩니다. 요청 헤더와 새 탭에서 세션에서 올바르게 원래 탭을 예상대로 일치시킵니다.
- 브라우저를 다시 시작하면 테스트 페이지로 이동하여 Google에서 링크 테스트 페이지에서 _blank를 대상으로 한 다음 링크를 클릭하십시오. 새 탭에서 테스트 페이지 열기 쿠키도 올바르게 전송됩니다. 요청 헤더와 새 창에서의 세션에서 원래 창과 같은 창.
나는 이것이 클라이언트 측 문제라고 생각하지만 .NET 4.51이 설치된 4.0 통합 웹 사이트에서 Windows Server Standard 2008 R2 SP 1 에서이 사이트가 실행됩니다 (또한 4.5 설치만으로도 시도).
클라이언트는 Windows 7 64 비트 IE11 (11.0.9600.16476)입니다. IE11에서 Windows 7을 실행하는 다른 시스템에서 문제를 확인하고 Windows 8에서 Windows 8에서 IE10에서 문제가되지 않았 음을 확인했습니다. 모든 것은 크롬과 파이어 폭스에서 예상대로 작동합니다.
i :
에도 문제가 지속되는 문제를 확인했습니다.- 보조금으로 보안 이동
- 보호 모드 사용 안 함
- 모든 쿠키를 수락하도록 개인 정보를 변경합니다.
- 사이트를 로컬 인트라넷 또는 신뢰할 수있는 사이트 영역 웹 사이트 목록 에 추가하십시오.
- 정보가 수집되거나 사용되지 않는 응답 헤더에서 P3P 컴팩트 개인 정보 보호 정책을 설정합니다.
- 과거 버전의 IFRAME 내에서 타사 쿠키를 허용하도록 허용하는 응답 헤더에서 P3P 컴팩트 개인 정보 보호 정책을 설정합니다.
- 웹 사이트 ASP.NET 세션 상태 설정을 쿠씨="useCookies"또는 "false"로 변경하거나 ASP.NET 상태 서버 (ASP.NET 상태 서버)를 제거하십시오.
아이디어가 있습니까? 다른 누구도이 문제를 보았습니까?
해결책
이것은 Microsoft에 따른 활성 버그입니다.이 문제를 해결할 서버 측면은 분명히 없습니다.
다른 팁
해결책이 아니라 단서 : 우리는 비슷한 행동을 취하고 root / browserconfig.xml을 root / browserconfig.xml로 추적하여 사용자가 인증되지 않게합니다.Windows가 기존 세션을 보내지 않았기 때문에 서버가 새 세션 쿠키를 보냈습니다.후속 요청은 새 세션 쿠키 값을 보냈습니다.우리는 서버를 변경 하여이 요청을 찾아 응답 쿠키를 설정하지 않습니다.
이것은 해결책이 아닙니다.
시도 중간 클릭 대신 을 클릭하십시오.그 시간의 100 % (그것은 나를 위해했던 것)
js: links with target='_blank' on ie remove defaultBehaviour and trigger middle click.
.
문제 해결.
동일한 문제가 내 로그인을 위해 오지만 IE11 또는 다른 문제가있는 브라우저에서 설정을 변경하여 해결하기 위해 시도했습니다.
goto 도구=> 인터넷 옵션=> 개인 정보 사이트 버튼을 클릭하십시오.mydomain.com을 추가하고 허용 버튼을 클릭하십시오. 브라우저를 다시 시작하십시오.