Как установить флажок Secure на ASP.NET куки-файл сеанса?
Как я могу установить безопасный флаг на ASP.NET cookie сеанса, так что он будет передаваться только по HTTPS и никогда по простому HTTP?
3 ответов
есть два способа, один httpCookies
элемент web.config
позволяет включить requireSSL
который передает только все куки, включая сеанс только в SSL, а также внутри проверки подлинности форм,но если вы включите SSL на httpcookies, вы также должны включить его внутри конфигурации форм.
редактировать для ясности:
Положите это в <system.web>
<httpCookies requireSSL="true" />
на <system.web>
элемент, добавьте следующий элемент:
<httpCookies requireSSL="true" />
однако, если у вас есть <forms>
элемент system.web\authentication
блок, то это переопределит настройку в httpCookies
, установив его обратно в значение по умолчанию false
.
в этом случае вам нужно добавить requireSSL="true"
атрибут к элементу forms также.
таким образом, вы в конечном итоге:
<system.web>
<authentication mode="Forms">
<forms requireSSL="true">
<!-- forms content -->
</forms>
</authentication>
</system.web>
посмотреть здесь и здесь для документации MSDN все эти элементы.
все быстро запутывается, если вы говорите о зарегистрированном коде в корпоративной среде. Мы обнаружили, что лучший подход-иметь web.Освобождать.config содержать следующее:
<system.web>
<compilation xdt:Transform="RemoveAttributes(debug)" />
<authentication>
<forms xdt:Transform="Replace" timeout="20" requireSSL="true" />
</authentication>
</system.web>
таким образом, разработчики не затрагиваются (работают в Debug), и только серверы, которые получают сборки выпуска, требуют, чтобы cookies были SSL.