3

经过安全审核后,我要求将 cookie ASP.NET_sessionID 设置为“安全”。

现在没有设置标志。

我可以使用 SessionIDManager 将其设置为安全吗?在使用以下代码登录后,我已经在使用它来更改 Session cookie 的值:

            System.Web.SessionState.SessionIDManager manager = new System.Web.SessionState.SessionIDManager();
            string oldId = manager.GetSessionID(System.Web.HttpContext.Current);
            string newId = manager.CreateSessionID(System.Web.HttpContext.Current);
            bool isAdd = false, isRedir = false;
            manager.SaveSessionID(System.Web.HttpContext.Current, newId, out isRedir, out isAdd);

编辑

我看到我可以设置

<httpCookies httpOnlyCookies="false" requireSSL="true" />

但我只想让这个 cookie 安全

4

2 回答 2

5

只需编写代码即可通过安全审核。

void Session_Start(Object sender, EventArgs e)
    {

        if (Request.IsSecureConnection)
            {
                Response.Cookies["ASP.NET_SessionId"].Secure = true;
            }

    }
于 2014-04-08T13:34:24.903 回答
3

这应该使您能够将 cookie 设置为安全:

void Application_EndRequest(object sender, EventArgs e)
{
    var sessionCookieKey = Response.Cookies.AllKeys.SingleOrDefault(c => c.ToLower() == "asp.net_sessionid");
    var sessionCookie = Response.Cookies.Get(sessionCookieKey);
    if(sessionCookie != null)
    {
        sessionCookie.Secure = true;
    }
}
于 2012-08-30T23:39:14.617 回答