Cookies 是否可以将cookie ASP.NET_会话ID标记为安全

Cookies 是否可以将cookie ASP.NET_会话ID标记为安全,cookies,https,asp.net-mvc-4,session-state,Cookies,Https,Asp.net Mvc 4,Session State,经过安全审计后,我得到了将cookie ASP.NET_sessionID设置为“安全”的要求 现在还没有设置标志 我可以使用SessiondManager将其设置为安全吗?在使用以下代码登录后,我已经在使用它更改会话cookie的值: System.Web.SessionState.SessionIDManager manager = new System.Web.SessionState.SessionIDManager(); string o

经过安全审计后,我得到了将cookie ASP.NET_sessionID设置为“安全”的要求

现在还没有设置标志

我可以使用SessiondManager将其设置为安全吗?在使用以下代码登录后,我已经在使用它更改会话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安全

这将使您能够将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;
    }
}

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

void Session_Start(Object sender, EventArgs e)
    {

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

    }

哪里是
应用程序\u EndRequest
?我的
Global.asax
只有
Session\u End
Application\u End
。只需将其添加到您的Global.asax文件中,您就可以更新示例了,您需要检索cookie,而不仅仅是cookie的密钥。我认为会话cookie应该按照@Alagappapillai的建议在会话_Start中完成。相关问题(也有关于ASP会话的答案)