Récemment, samesite = lax s'est ajouté automatiquement à mon cookie de session! cet attribut vient s'ajouter à sessionID:
"Set-Cookie ASP.NET_SessionId=zana3mklplqwewhwvika2125; path=/; HttpOnly; **SameSite=Lax**"
Mon site Web est hébergé sur IIS 8.5, Windows 2012 R2, et n'a pas WAF ou UrlRewrite et je désactive AntiVirus (kasper).
mais ont pourtant le même problème sur certains serveurs clients.
une idée?
EDITÉ: Je trouve ceci: https://support.microsoft.com/en-us/help/4524419/kb4524419
ASP.NET émettra désormais un en-tête de cookie SameSite lorsque la valeur HttpCookie.SameSite est «Aucune» pour s'adapter aux modifications à venir de la gestion des cookies SameSite dans Chrome. Dans le cadre de cette modification, les cookies FormsAuth et SessionState seront également émis avec SameSite = 'Lax' au lieu de la valeur par défaut précédente de 'None', bien que ces valeurs puissent être remplacées dans web.config.
Comment puis-je remplacer les cookies du même site pour SessionState dans web.config? j'ajoute cette ligne, mais cela ne fonctionne pas sur le cookie SessionID!
<httpCookies sameSite="Unspecified" />
EDITÉ: Je trouve ceci: https://docs.microsoft.com/en-us/dotnet/api/system.web.configuration.sessionstatesection.cookiesamesite?view=netframework-4.8#System_Web_Configuration_SessionStateSection_CookieSameSite
Définissez le même site pour le serveur d'états par l'attribut "cookieSameSite" de la balise SessionState.
Réponses:
Ajoutez ces options à web.config pour sameSite = None, Lax ou Strict
la source
<httpCookies sameSite
Je ne peux pas utiliser la réécriture, car UrlRewrite n'est pas installé sur tous les serveurs de mes clients.
Enfin j'ajoute cookieSameSite à mon web.config:
la source
cookieSameSite
fonctionnalité à web.config - .NET 4.7.2 le fait. Le lien que j'ai publié dans mon commentaire est également lié à la page à laquelle vous vous référez.L'attribut CookieSameSite n'est pas disponible pour de nombreux frameworks plus anciens. Si vous êtes dans une situation où la réponse acceptée n'est pas prise en charge dans votre environnement, lisez la suite!
J'ai modifié plusieurs réponses SO pour arriver à cette réécriture d'URL qui ajoute
SameSite=None
aux cookies de session, et aussi supprimerSameSite=None
de tous les cookies pour la plupart des navigateurs incompatibles. Le but de cette réécriture est de conserver le comportement "hérité" pré-Chrome 80.Rédaction complète sur mon blog Coder Frontline :
Cela devrait fonctionner pour la plupart des applications ASP .Net et ASP .Net Core, bien que les cadres plus récents disposent de code et d'options de configuration appropriés pour vous permettre de contrôler ce comportement. Je recommanderais de rechercher toutes les options disponibles avant d'utiliser ma réécriture ci-dessus.
la source
<system.net></system.net>
?<system.webServer>
SameSite=Lax
cela, il ne fera que l'ajouterSameSite=None
et ne le remplacera pas.(SameSite=.*)?
tout dans le motif?SameSite=Lax
tête:((.*)(ASP.NET_SessionId)(=.*))(?=SameSite)
voir regex101.com/r/7D9UdO/3 mise à jour - cependant, notez que cette expression régulière exclura tout ce que vous voudrez par la suite, comme l'en-tête sécurisé. Cela devrait être une condition rare, donc le point clé est de voir ce que votre OS + framework + app émet et d'écrire l'expression rationnelle appropriée. JeDernière mise à jour: la réponse de zemien est plus complète et complète que la mienne. car il définit un cookie basé sur l'agent utilisateur.
Ma réponse:
Vous pouvez remplacer SameSite = Lax par SameSite = None pour ASP.NET_SessionId dans web.config de la manière suivante:
Mise à jour: pour éviter un problème IOS , remplacez
avec
la source
@zemien votre solution a correctement résolu nos problèmes de Google Chrome
Nous avons une intégration où notre application est intégrée dans un iframe sur un tiers. La version 80 de Chrome publiée le 4 février 2020 a empêché le chargement des cookies.
Cependant, j'ai dû modifier le modèle pour capturer tous les cookies, ajouter l'indicateur sécurisé et condition de ne pas appliquer la réécriture sur localhost pour notre environnement local non https
la source
Travaille pour moi. Ajouté dans mon fichier web.config:
Mise à niveau vers .NET Framework 4.8 + correctif d'installation: mise à jour cumulative 2019-12 pour .NET Framework 3.5 et 4.8 pour Windows 10 version 1909 pour x64 (KB4533002)
la source