IE11から最初の新しいタブ(ターゲット_blank)を開くときにセッションを保持するのに問題があります。
IE11のすべてのインスタンスを閉じてから、新しいブラウザーを開いてテストWebページ(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 = "_ blank"とCTRLを押しながらリンクをクリックすることで問題を確認しました)。
これはクライアント側の問題であると思いますが、サイトはWindows Server Standard 2008 R2から実行していますSP 1(また、4.5のみがインストールされている場合も試してみました)。
クライアントは、IE11(11.0.9600.16476)を実行しているWindows 7 64ビットです。 IE11からWindows 7を実行している他のマシンで問題を確認し、デスクトップモードのWindows 8からのIE10では問題がないことを確認しました。 ChromeおよびFirefoxですべてが期待どおりに動作します。
次の場合でも問題が解決しないことを確認しました。
何か案は?他の誰かがこの問題または同様のものを見たことがありますか?
マイクロソフトによれば、これはアクティブなバグです。これを修正するサーバー側の方法は明らかにありません。
解決策ではなく手がかり:私たちは同様の動作に気づき、それをroot/browserconfig.xmlへのリクエストに追跡して、ユーザーが認証されないようにしました。 Windowsが既存のCookieを送信していなかったため、サーバーは新しいセッションCookieを送信しました。その後のリクエストでは、新しいセッションCookie値が送信されました。サーバーを変更して、このリクエストを検索し、レスポンスCookieを設定しないようにしました。
これは解決策ではありませんが、
代わりにミドルクリックを試してください。それが100%あなたのために働くなら(それは私のためにやった)
js: links with target='_blank' on ie remove defaultBehaviour and trigger middle click.
問題が解決しました。