如果我们将IE11隐私设置设置为中等,我们会成功从会话中获取价值,但如果我们设置为“阻止所有Cookie” - 我们将获得null。什么可以导致它?怎么避免?
var x = HttpContext.Current.Session["user_name"]
问候。
答案 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的每个页面上发送标题。