2016-07-02 8 views
1

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.comundmydomain.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.

+0

Cookies sollten nicht über "Top Level" -Domains verteilt werden, also ist das, was Sie sehen, korrekt. –

+0

@TiesonT. - Ich versuche nicht, Cookies auf Top-Level-Domains zu teilen. Nur zwischen der gleichen Domäne mit www und ohne www., – Jourdan

+0

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). –

Antwort

0

Ich denke, die Rewrite-Option ist am besten für Ihren Fall, etwas wie diese sollte das Sub-Domain-Rewrite-Problem beheben.

<rewrite> 
    <rules> 
     <rule name="Redirect domain.com to www" patternSyntax="Wildcard" stopProcessing="true"> 
      <match url="*" /> 
      <conditions> 
       <add input="{HTTP_HOST}" pattern="^domain.com$" /> 
      </conditions> 
      <action type="Redirect" url="http://www.domain.com/{R:0}" /> 
     </rule> 
    </rules> 
</rewrite> 
+0

Danke, aber das funktioniert nicht. Selbst wenn dies der Fall wäre, würde Ihr Redirect nicht für die andere mögliche Affiliatedomain.com, nicht nur für Mydomain.com, verantwortlich sein – Jourdan