1

我有一个ASP NET MVC 3应用程序,页面中有一些参数正在设置(比如说region ='North')。Chrome和IE不发送ASP.NET_SessionID - 即会话变量会丢失吗?

当这张邮件发回服务器时,我将此参数设置为会话变量,并返回三个图像,其src属性设置为三个不同的controller/getImageXy网址。

现在,这些控制器方法执行查询(基于会话变量)并返回图像。 它有点整洁,用户得到一个快速回复,然后这些图像被填充(异步)。

一切工作正常FF。最初的回复有一个ASPNET_SessionID set(cookie)。

FF然后,获取三张图片,使用相同的cookie,并且一切都很好。但是,Chrome和IE并不这样做。他们只是发送__RequestVerificationToken_Lw__。 当然,我的会话变量(“region”)会丢失。

感谢,

伊戈尔

+0

您使用的是IFrame吗?我有一个近期的问题与此类似,但是当涉及IFrame时,它只在IE和Chrome中出现。 –

+0

不,它几乎是一个带有三个img标签的车身标签。 – igorludi

回答

1

要回答我的问题,可能救一个人几个小时:

的问题是,我设置上的会话cookie的domain属性。

我为什么那样做? 我从书“Proffesional ASP NET MVC 3”(第163页)复制它,打算设置HttpOnly标志。报价:仅Http:

您可以通过添加一个简单的 停止标志在您的网站上所有的cookies脚本的访问。你可以像这样设置这个在web.config:

<httpCookies domain=”String” httpOnlyCookies=”true” requireSSL=”false”/>

我受到了惩罚复制粘贴不假思索。 因此,当我将其更改为domain=""时,问题得到解决。

有趣的是,FF忽略(或滥用)这个属性,但这是另一个话题。