【问题标题】:IE 11 Issue : Session getting null on Iframe postback...?IE 11 问题:会话在 Iframe 回发时为空...?
【发布时间】:2014-02-23 18:25:26
【问题描述】:

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

当我在互联网上搜索时,我发现添加 Privacy Preferences Project(P3P) 标头可以解决问题。因此我将其添加到登录页面、导航器页面和加载到 @ 内部的页面中987654325@ 如下:

private void Page_PreInit(object sender, System.EventArgs e){
HttpContext.Current.Response.AddHeader ("p3p","CP=\"IDC DSP COR ADM DEVi TAIi PSA PSD IVAi IVDi CONi HIS OUR IND CNT\"");
}

但只有 Internet Explorer 11 仍然存在同样的问题。

为什么会这样?请分享您修复它的宝贵建议。

【问题讨论】:

  • 你试过了吗? header('P3P: CP="Potato"');
  • 是否有可能,您的 IE11 禁用了 cookie?

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


【解决方案1】:

问题在于称为隐私偏好平台或简称 P3P 的 W3C 标准。您可以通过链接阅读所有关于无聊的东西,或者只需安装下面的 P3P 紧凑策略标题。这将允许 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 有一个新功能,它会在某些情况下拒绝会话,除非发送了特定的标头来阐明 Web 应用程序的意图。这似乎很可能,所以我试了一下。

如果你在标题上添加这个

'CP="IDC DSP COR ADM DEVi TAIi PSA PSD IVAi IVDi CONi HIS OUR IND CNT"'

它不起作用,所以它是别的东西。

【讨论】:

    猜你喜欢
    • 2014-08-14
    • 1970-01-01
    • 1970-01-01
    • 2011-04-21
    • 1970-01-01
    • 2015-10-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多