C# 使ASP.NET_SessionId cookie不是httpOnly

C# 使ASP.NET_SessionId cookie不是httpOnly,c#,asp.net-mvc,cookies,C#,Asp.net Mvc,Cookies,ASP.NET MVC中用于会话的cookie是httpOnly(属性设置为true) 有没有办法让它不只是http 我希望能够从javascript访问此cookie 即使它不如“如果整个宇宙都反对我怎么办?”默认设置那么安全。如果您确实需要它,您可以尝试将其添加到您的全局设置中。asax: void Application_EndRequest(Object sender, EventArgs e) { if (Response.Cookies.Count > 0) {

ASP.NET MVC中用于会话的cookie是
httpOnly
(属性设置为true)

有没有办法让它不只是http

我希望能够从javascript访问此cookie

即使它不如“如果整个宇宙都反对我怎么办?”默认设置那么安全。

如果您确实需要它,您可以尝试将其添加到您的全局设置中。asax:

void Application_EndRequest(Object sender, EventArgs e)
{
   if (Response.Cookies.Count > 0)
   {
       foreach (string s in Response.Cookies.AllKeys)
       {
           if (s == "ASP.NET_SessionId")
           {
               Response.Cookies["ASP.NET_SessionId"].HttpOnly = false;
           }
       }
   }    
}
解决方案取自。

如果您确实需要,您可以尝试将其添加到您的Global.asax中:

void Application_EndRequest(Object sender, EventArgs e)
{
   if (Response.Cookies.Count > 0)
   {
       foreach (string s in Response.Cookies.AllKeys)
       {
           if (s == "ASP.NET_SessionId")
           {
               Response.Cookies["ASP.NET_SessionId"].HttpOnly = false;
           }
       }
   }    
}

解决方案取自。

我构建了一个系统,使用cookies在整个站点存储搜索参数。 在主页上有链接,我想使用jQuery保存一个带有项目id的cookie

但单击后,用户将被发送到高级搜索页面,在那里他们可以使用.net控件修改搜索。Cookie会再次保存,但当用户返回浏览时,它们需要可由js在主页上写入

因此,我将HttpOnly设置为:

var cookie = new HttpCookie(name)
{
   Value = val,
   HttpOnly = false // #DEV search cookies can be modified by JS
};
HttpContext.Current.Response.Cookies.Add(cookie);

我建立了一个系统,使用cookies在整个站点上存储搜索参数。 在主页上有链接,我想使用jQuery保存一个带有项目id的cookie

但单击后,用户将被发送到高级搜索页面,在那里他们可以使用.net控件修改搜索。Cookie会再次保存,但当用户返回浏览时,它们需要可由js在主页上写入

因此,我将HttpOnly设置为:

var cookie = new HttpCookie(name)
{
   Value = val,
   HttpOnly = false // #DEV search cookies can be modified by JS
};
HttpContext.Current.Response.Cookies.Add(cookie);

cookie是在哪里创建的?您是自己创建的,还是由ASP.NET生成的?都是由MVC.NET处理的。问题是,为什么需要这样做?你的逻辑是什么?出于安全原因,默认情况下,仅httpOnly设置为true。用于培训目的-演示为什么会话cookie应始终为httpOnly cookie在何处创建?您是自己创建的,还是由ASP.NET生成的?都是由MVC.NET处理的。问题是,为什么需要这样做?你的逻辑是什么?出于安全原因,httpOnly默认设置为true。用于培训目的-演示为什么会话cookie应始终为httpOnly注意:要测试此cookie,必须事先从浏览器中删除cookie。(Response.Cookies仅指新添加的Cookies)注意:要测试此cookie,必须事先从浏览器中删除cookie。(Response.Cookies仅指新添加的Cookies)