HttpContext.Current.Session为null隐私设置

时间:2014-06-05 11:50:37

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

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

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

问候。

2 个答案:

答案 0 :(得分:1)

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

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

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

请注意,ASP.NET MVC不支持cookieless,但只能通过webforms支持。

答案 1 :(得分:0)

您可以通过添加Global.asax文件

来尝试以下代码
   protected void Application_BeginRequest(object sender, EventArgs e)
   {
       HttpContext.Current.Response.AddHeader("p3p", "CP=\"CAO PSA OUR\"");
   }

问题在于W3C标准名为隐私首选项平台 P3P 。 这将允许Internet Explorer接受您的cookie。您需要在设置cookie的每个页面上发送标题。