【问题标题】:HttpContext.Current.Session is null Privacy settingsHttpContext.Current.Session 为 null 隐私设置
【发布时间】:2014-08-10 22:15:35
【问题描述】:

如果我们将 IE11 隐私设置设置为中等,我们会成功地从会话中获取我们的值,但如果我们设置为“阻止所有 Cookie” - 我们会得到空值。什么会导致它?如何避免?

var x = HttpContext.Current.Session["user_name"]

问候。

【问题讨论】:

  • 您无法避免,因为没有保存任何 cookie。所以你也无法检索 cookie。

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


【解决方案1】:

ASP.NET 使用session identifier 来识别您网站的用户。 默认情况下,它会将此值放在您的 .ASPNET_SessionId cookie 中。

但是,如果它被禁用,它显然也不会将标识符发送到服务器。

可能的解决方案是cookieless sessions,在这种情况下,您的会话标识符将被添加到您的网址中。虽然这当然很难看,但我不确定是否存在任何安全问题。

请注意,无 cookie 不受 ASP.NET MVC 支持,只能通过 webforms 支持。

【讨论】:

  • 但是不能使用这个解决方案。
【解决方案2】:

您可以通过在Global.asax文件中添加来尝试以下代码

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

问题在于称为Platform for Privacy PreferencesP3P 的W3C 标准。 这将允许 Internet Explorer 接受您的 cookie。您需要在每个设置 cookie 的页面上发送标题。

【讨论】:

  • 您能解释一下这个标头的作用/含义以及它是如何解决问题的吗?
  • 没有帮助。还有其他想法吗?
猜你喜欢
  • 2013-05-21
  • 2016-10-21
  • 2021-03-31
  • 1970-01-01
  • 2014-06-16
  • 2019-05-25
  • 2011-11-25
  • 2015-10-03
  • 2023-03-20
相关资源
最近更新 更多