Ich habe mehrere Domänen, die auf eine Webanwendung verweisen. Hier sind ein paar, nur als Beispiele, so dass ich sie in meinen Beispielen referenzieren kann.Sitzungen in mehreren Domänen mit www und ohne www zulassen
www.mydomain.com
sub.mydomain.com
www.affiliatedomain.com
ASP.NET ermöglicht eine web.config dies zu erreichen, setzen:
<httpCookies httpOnlyCookies="true" domain=".mydomain.com" />
Dies ermöglicht es mir Sitzungen gemeinsam nutzen zwischen der www.mydomain.com
und mydomain.com
Domains. Perfekt! Außer es funktioniert nur für eine Domäne.
Ein anderer Weg, den ich erforschte, war URL-Rewriting. Ich könnte eine Rewrite-Regel einfügen, um sicherzustellen, dass nur auf www
URLs zugegriffen wird, aber dies (mindestens die eine, die ich schreibe) funktioniert für die Domänen, aber fügt eine www.
an die sub.mydomain.com
was zu einem Fehler www.sub.mydomain.com
- was nicht funktioniert. Vielleicht könnte diese Option noch funktionieren, wenn jemand weiß, wie URLs besser zu schreiben sind als ich.
Schließlich, um klar zu sein, muss ich Sitzungen nicht über alle Domänen teilen (ich weiß, das ist nicht möglich). Ich möchte nur Domänen über die gleiche Domain mit und ohne www
teilen.
Zum Beispiel: www.mydomain.com
undmydomain.com
Oder www.affiliatedomain.com
und affiliatedomain.com
Die sub.mydomain.com
auf seinem eigenen leben kann, solange es nie ein www.
vor ihm hat.
Cookies sollten nicht über "Top Level" -Domains verteilt werden, also ist das, was Sie sehen, korrekt. –
@TiesonT. - Ich versuche nicht, Cookies auf Top-Level-Domains zu teilen. Nur zwischen der gleichen Domäne mit www und ohne www., – Jourdan
Da Sie mehrere Domänen auf die gleiche Instanz zeigen, ist es mehr oder weniger _is_ was Sie versuchen zu tun. Wenn ein Benutzer, der von einer Domäne zur anderen authentifiziert wird, kein Ziel ist, * kann * er * möglicherweise * die Domäne in der Sitzung/dem Cookie setzen, wenn sich ein Benutzer anmeldet (OWIN macht dies tatsächlich einfacher als früher). –