首页 > 解决方案 > IE11 在加载打印预览时重新请求内容时不发送表单身份验证 cookie

问题描述

此请求是关于 Internet Explorer 版本 11.778.18362.0

我有一个 ASP.NET Web 应用程序,它在网页上显示一些文本和图像。一切正常,但是当页面在 IE11 中加载并单击打印预览时,它会再次调用服务器以重新加载一些未缓存的图像,在这些调用中,它不会发送按名称设置的特殊 cookie in下的<form>元素<authentication mode="forms">web.config

我已经<httpCookies domain=".domain.com">设置好了。

这是页面加载(非打印预览)并且一切正常时的请求标头。

GET /Misc/ImageHandler.aspx?ID=qby7WpWRfig%3d&Type=Header&Thumbnail=1 HTTP/1.1
Accept: image/png, image/svg+xml, image/jxr, image/*;q=0.8, */*;q=0.5
Referer: http://path.to/something/Awesome.aspx?ID=6wK%2bnN2D1qY%3d&ms=1588006101660
Accept-Language: en-US
User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; Trident/7.0; rv:11.0) like Gecko
Accept-Encoding: gzip, deflate
Host: path.to
Connection: Keep-Alive
Pragma: no-cache
Cookie: ASP.NET_SessionId=bafvvytbxb1eevhbbn4uwahc; __AntiXsrfToken=4073624154744106997e1d0e2c00b074; __utmc=268869105; LoginServerName=MachineName : 4/27/2020 1:03:02 PM : 192.168.2.88; LoginSessionID=bafvvytbxb1eevhbbn4uwahc : 4/27/2020 : 192.168.2.88; FormsAuthCookieName=B4BA26AFEBCBB642B9404AA6EC427A289F8C2D4BC6AB25D66F41CFD824A319598398B612147A504FA3B0CB2095A4E5ED7CFA8E675EBE40459585F788340EE5977B2D4019BFC074776D28DECB14BEAD124B6B1585; __utmz=268869105.1588005744.1.1.utmcsr=(direct)|utmccn=(direct)|utmcmd=(none); __utma=268869105.758733509.1588005744.1588005744.1588005744.1; __utmb=268869105.2.10.1588005744; __utmt=1

这是再次请求图像时的请求标头

GET /Misc/ImageHandler.aspx?ID=qby7WpWRfig%3d&Type=Header&Thumbnail=1 HTTP/1.1
Accept: image/png, image/svg+xml, image/jxr, image/*;q=0.8, */*;q=0.5
Accept-Language: en-US
User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; Trident/7.0; rv:11.0) like Gecko
Accept-Encoding: gzip, deflate
Host: path.to
Connection: Keep-Alive
Cookie: __AntiXsrfToken=4073624154744106997e1d0e2c00b074; __utmc=268869105; LoginServerName=MachineName : 4/27/2020 1:03:02 PM : 192.168.2.88; LoginSessionID=bafvvytbxb1eevhbbn4uwahc : 4/27/2020 : 192.168.2.88; __utmz=268869105.1588005744.1.1.utmcsr=(direct)|utmccn=(direct)|utmcmd=(none); __utma=268869105.758733509.1588005744.1588005744.1588005744.1; __utmb=268869105.2.10.1588005744; __utmt=1

请注意后续请求中缺少REFERRERand 。FormsAuthCookieName为什么要这样做?我究竟做错了什么?

我已经尝试了很多我在网上找到的不同的东西,比如元素和元素的变化web.config。已经在服务器上安装了补丁来更新浏览器配置文件。httpCookies<forms>

标签: asp.netinternet-explorer-11

解决方案


  1. 您的域名是否包含特殊字符(如 - 或 _)或非字母数字字符?如果是,那么它可能会导致此问题。

  2. 您可以尝试的另一件事是在 web.xml 文件中添加标签 ticketCompatibilityMode。

例子:

ticketCompatibilityMode="Framework40"

参考:

ASP.NET 身份验证 cookie 消失,仅在 IE 中,仅来自特定位置


推荐阅读