asp.net session - the - ¿Cómo puedo configurar el indicador de seguridad en una cookie de sesión ASP.NET?
session cookie does not contain the secure attribute iis (3)
¿Cómo puedo configurar el indicador de seguridad en una cookie de sesión ASP.NET, para que solo se transmita a través de HTTPS y nunca a través de HTTP simple?
En el elemento <system.web>
, agregue el siguiente elemento:
<httpCookies requireSSL="true" />
Sin embargo, si tiene un elemento <forms>
en su bloque de system.web/authentication
, esto anulará la configuración en httpCookies
, configurándolo como el valor predeterminado false
.
En ese caso, también debe agregar el requireSSL="true"
al elemento forms.
Entonces terminarás con:
<system.web>
<authentication mode="Forms">
<forms requireSSL="true">
<!-- forms content -->
</forms>
</authentication>
</system.web>
Vea here y here para la documentación de MSDN de estos elementos.
Las cosas se complican rápidamente si habla de código registrado en un entorno empresarial. Hemos encontrado que el mejor enfoque es tener la web.Release.config contiene lo siguiente:
<system.web>
<compilation xdt:Transform="RemoveAttributes(debug)" />
<authentication>
<forms xdt:Transform="Replace" timeout="20" requireSSL="true" />
</authentication>
</system.web>
De esta forma, los desarrolladores no se ven afectados (se ejecutan en Debug), y solo los servidores que obtienen compilaciones de Release requieren que las cookies sean SSL.
Hay dos formas: un elemento httpCookies
en web.config
permite activar requireSSL
que solo transmite todas las cookies, incluida la sesión solo con SSL y la autenticación con formularios internos, pero si activa SSL en httpcookies, también debe activarlo en formularios internos. configuración también.
Edite para mayor claridad: coloque esto en <system.web>
<httpCookies requireSSL="true" />