Cookies 是否可以将cookie ASP.NET_会话ID标记为安全
经过安全审计后,我得到了将cookie ASP.NET_sessionID设置为“安全”的要求 现在还没有设置标志 我可以使用SessiondManager将其设置为安全吗?在使用以下代码登录后,我已经在使用它更改会话cookie的值: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
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会话的答案)