使ASP.NET_SessionId cookie不是httpOnly

时间:2014-12-15 08:42:06

标签: c# asp.net-mvc cookies

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

有没有办法让它不是httpOnly?

我希望能够从javascript访问此Cookie。

即使它不如“如果所有的宇宙都对我不利,怎么办?”默认设置。

2 个答案:

答案 0 :(得分:3)

如果你真的需要它,你可以尝试将它添加到你的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;
           }
       }
   }    
}

解决方案取自here

答案 1 :(得分:0)

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

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

所以我像这样设置HttpOnly:

import numpy as np
import matplotlib.pyplot as plt

alpha = ['ABC', 'BDF', 'ADF', 'BCF']

data = np.random.random((4,4))

fig = plt.figure()
ax = fig.add_subplot(111)
cax = ax.matshow(data, interpolation='nearest')
fig.colorbar(cax)

ax.set_xticklabels(['']+alpha)
ax.set_yticklabels(['']+alpha)

plt.show()