如何为ASP.NET_SessionId cookie设置HttpOnly?

时间:2010-02-11 19:32:04

标签: asp.net session cookies

在我的网络项目setting to turn on httpOnlyCookies中不存在。默认情况下为假。此外,代码中没有将cookie设置为HttpOnly的地方。但是,当我浏览到该站点时,我可以看到ASP.NET_Session cookie正在作为HttpOnly传递。怎么设置为HttpOnly?

2 个答案:

答案 0 :(得分:14)

ASP.NET会话cookie仅限HTTP,无论您的问题中链接的httpOnlyCookies设置如何,因为它被刻录到ASP.NET中。你无法覆盖它。

如果深入研究System.Web程序集中的System.Web.SessionState.SessionIDManager类,则创建ASP.NET会话cookie的代码如下所示:

private static HttpCookie CreateSessionCookie(string id)
{
    HttpCookie cookie = new HttpCookie(Config.CookieName, id);
    cookie.Path = "/";
    cookie.HttpOnly = true;   // <-- burned in
    return cookie;
}

答案 1 :(得分:1)

HttpOnly因此客户端无法使用JavaScript修改您的会话cookie。