Вот фрагмент кода, взятый из статьи блога , написанной Анубхав Гоял :
// this code will mark the forms authentication cookie and the
// session cookie as Secure.
if (Response.Cookies.Count > 0)
{
foreach (string s in Response.Cookies.AllKeys)
{
if (s == FormsAuthentication.FormsCookieName || "asp.net_sessionid".Equals(s, StringComparison.InvariantCultureIgnoreCase))
{
Response.Cookies[s].Secure = true;
}
}
}
Добавление этого в обработчик событий EndRequest в global.asax должно сделать это длявсе вызовы страницы.
Примечание. Было предложено редактирование, чтобы добавить оператор break;
в успешное "безопасное" назначение.Я отклонил это изменение, основываясь на том, что оно позволит принудительно защитить только один из файлов cookie, а второй будет проигнорирован.Не исключено добавить счетчик или какой-либо другой показатель, чтобы определить, что оба они были защищены, и сломаться в этой точке.Однако, с более новыми методами кода это, вероятно, было бы лучше написать как:
Response.Cookies[FormsAuthentication.FormsCookieName]?.Secure = true;
Response.Cookies["asp.net_sessionid"]?.Secure = true;