Make ASP.NET_SessionId cookie not httpOnly
本文关键字:cookie not httpOnly SessionId ASP NET Make | 更新日期: 2023-09-27 18:34:17
用于
ASP.NET MVC 中会话的 cookie httpOnly
(属性设置为 true(。
有没有办法让它不是httpOnly?
我希望能够从javascript访问这个cookie。
即使它不如"如果所有宇宙都反对我怎么办?!"默认设置安全。
如果你真的需要它,你可以尝试把它添加到你的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;
}
}
}
}
解决方案是从这里开始的。
我构建了一个系统,该系统使用 cookie 在整个站点中存储搜索参数。主页上有链接,我想使用 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);