在进行安全审核后,我得到了将ASP.NET_sessionID设置为“安全”的要求。
现在没有设置标志。
我可以使用SessionIDManager将其设置为安全吗?我已经使用它来使用此代码登录后更改会话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安全
答案 0 :(得分:4)
只需编写通过安全审核的代码。
void Session_Start(Object sender, EventArgs e)
{
if (Request.IsSecureConnection)
{
Response.Cookies["ASP.NET_SessionId"].Secure = true;
}
}
答案 1 :(得分: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;
}
}