我有一个asp.net网站,用户可以登录,会员可以通过Ctrl+P获取报告或打印页面。
最近,当我的会员在 IE 中打开我的网站并尝试打印时,他们已登出!
为什么?因为 IE 打印对话框在没有会话 cookie 的情况下向服务器发送了一些请求,所以 StateServer 为该客户端释放新会话,然后用户注销。
为什么打印对话框发送请求?我不知道,但我猜 IE 打印对话框尝试渲染页面并准备好打印。
为什么打印对话框不发送当前会话 cookie?因为 .net 的新更新为会话 cookie 设置了 SameSite=lax,所以来自打印对话框的请求无法发送当前会话 cookie。 https://support.microsoft.com/en-us/help/4524419/kb4524419
如何防止 IE 打印对话框发送请求?或者我如何强制 IE 打印对话框发送相同的会话 cookie?
任何想法?
编辑: 我创建了一个示例项目来显示这个问题。您可以下载我的项目并在 IIS 上托管,然后打开 Default.Aspx 并尝试在 IE(或边缘)中打印该页面。你会看到我的问题。 https://easyupload.io/w6vvpy