我有一个项目,其中包含登录页面和包含iframe
的导航器页面。项目中的所有其他页面都在iframe
内加载。
我正在设置一个会话值来存储登录页面中的userid。登录后,当我点击一些正在iframe
内加载的页面,然后点击iframe
之外的asp按钮(在导航页面中)时,我的会话值变为空。
当我在互联网上搜索时,我发现添加隐私首选项项目(P3P)标题可以解决问题。所以我在登录页面,导航页面和加载到{内部的页面中添加了它{1}}如下:
iframe
但仅限于使用Internet Explorer 11的问题。
为什么会这样?请分享您的宝贵建议以解决问题。
答案 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"'
它不起作用所以它是别的。