J'ai défini le cookie .ASPXAUTH sur https uniquement, mais je ne sais pas comment procéder de manière efficace avec ASP.NET_SessionId.
L'ensemble du site utilise HTTPS, il n'est donc pas nécessaire que le cookie fonctionne avec http et https.
J'ai défini le cookie .ASPXAUTH sur https uniquement, mais je ne sais pas comment procéder de manière efficace avec ASP.NET_SessionId.
L'ensemble du site utilise HTTPS, il n'est donc pas nécessaire que le cookie fonctionne avec http et https.
Pour ajouter le ; secure
suffixe au Set-Cookie
http tête j'ai simplement utilisé le <httpCookies>
élément dans le web.config:
<system.web>
<httpCookies httpOnlyCookies="true" requireSSL="true" />
<system.web>
IMHO beaucoup plus pratique que l'écriture de code comme dans l'article d'Anubhav Goyal.
Voir: http://msdn.microsoft.com/en-us/library/ms228262(v=vs.100).aspx
Voici un extrait de code tiré d'un article de blog écrit par Anubhav Goyal :
// 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 || s.ToLower() == "asp.net_sessionid")
{
Response.Cookies[s].Secure = true;
}
}
}
L'ajout de cela au gestionnaire d'événements EndRequest dans le fichier global.asax devrait permettre de réaliser cela pour tous les appels de page.
En allant avec la solution de Marcel ci-dessus pour sécuriser le cookie d'authentification par formulaires, vous devez également mettre à jour l'élément de configuration "authentication" pour utiliser SSL
<authentication mode="Forms">
<forms ... requireSSL="true" />
</authentication>
Un autre cookie d'authentification ne sera pas https
Voir: http://msdn.microsoft.com/en-us/library/vstudio/1d3t3c61(v=vs.100).aspx
Il a été constaté que la définition de la propriété secure dans Session_Start est suffisante, comme recommandé dans le blog MSDN " Sécuriser l'ID de session: ASP / ASP.NET " avec certaines augmentations.
protected void Session_Start(Object sender, EventArgs e)
{
SessionStateSection sessionState =
(SessionStateSection)ConfigurationManager.GetSection("system.web/sessionState");
string sidCookieName = sessionState.CookieName;
if (Request.Cookies[sidCookieName] != null)
{
HttpCookie sidCookie = Response.Cookies[sidCookieName];
sidCookie.Value = Session.SessionID;
sidCookie.HttpOnly = true;
sidCookie.Secure = true;
sidCookie.Path = "/";
}
}
Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.