IE11在加载打印预览时重新请求内容时,没有发送表单验证cookie。

问题描述 投票:0回答:1

这个请求是关于Internet Explorer版本11.778.18362.0的。

我有一个ASP.NET Web应用程序,在网页上显示一些文本和图像。一切都很好,但是当在IE11中加载页面并点击打印预览时,它再次调用服务器来重新加载一些没有缓存的图片,在这些调用中,它没有发送特殊的cookie,它的名字设置在了 <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

注意 REFERRERFormsAuthCookieName 在随后的请求中缺失。为什么会这样?我到底做错了什么?

我尝试了很多不同的事情,我在网上找到的,如在 web.confighttpCookies 元素以及 <forms> 元素。已经在服务器上安装了更新浏览器配置文件的补丁。

asp.net internet-explorer-11
1个回答
0
投票
  1. 你的域名是否包含特殊字符(如-或_)或非字母数字字符?如果是,那么它可能会导致这个问题。

  2. 另外,你可以尝试在web.xml文件中添加一个标签ticketCompatibilityMode。

例子:在web.xml文件中添加一个标签ticketCompatibilityMode。

ticketCompatibilityMode="Framework40"

参考:

ASP.NET认证cookie消失,只有在IE中,只有在特定的位置才会消失

© www.soinside.com 2019 - 2024. All rights reserved.