IE 11问题:会话在Iframe回发上变为空...?

时间:2014-01-31 06:14:54

标签: c# asp.net internet-explorer iframe internet-explorer-11

我有一个项目,其中包含登录页面和包含iframe的导航器页面。项目中的所有其他页面都在iframe内加载。 我正在设置一个会话值来存储登录页面中的userid。登录后,当我点击一些正在iframe内加载的页面,然后点击iframe之外的asp按钮(在导航页面中)时,我的会话值变为空。

当我在互联网上搜索时,我发现添加隐私首选项项目(P3P)标题可以解决问题。所以我在登录页面,导航页面和加载到{内部的页面中添加了它{1}}如下:

iframe

但仅限于使用Internet Explorer 11的问题。

为什么会这样?请分享您的宝贵建议以解决问题。

1 个答案:

答案 0 :(得分:4)

问题在于W3C标准称为隐私首选项平台或简称P3P。您可以通过链接阅读有关无聊内容的所有信息,或者只需在下面安装P3P Compact Policy标题。这将允许Internet Explorer接受您的第三方cookie。您需要在设置cookie的每个页面上发送标题。

您需要在global.asax文件中添加此标头,因为您需要在所有文件中添加此标头..

前几天我从i帧调用页面时遇到同样的问题,并且在I帧中调用页面时没有得到会话值但是在所有IE浏览器中都有这个问题..

这是我的解决方案 在

Global.asax档案

    protected void Application_BeginRequest(object sender, EventArgs e)
   {
       HttpContext.Current.Response.AddHeader("p3p", "CP=\"CAO PSA OUR\"");
   }

它的作用对我来说..

P3P问题

IE有一项新功能会在某些情况下拒绝会话,除非发送特定标题以澄清网络应用的意图。这似乎很可能所以我试了一下。

如果你在标题

上添加它

' CP =" IDC DSP COR ADM DEVi TAIi PSA PSD IVAi IVDi CONi HIS我们的CN CNT"'

它不起作用所以它是别的。