2016-06-22 4 views
3

Ich benutze einen Proxy in der Dev-Umgebung, weil ich echte Domain verwenden möchte, während die "Edit and Continue" -Funktion, die nur auf localhost funktioniert.Einrichten eines Cookies über Proxy

Ich habe www.site.com auf meinem lokalen Rechner mit benutzerdefinierten Host konfiguriert. (einfache html Seite)

Ich habe diese App: localhost:9090 das ist meine asp.net mvc app auf meinem lokalen PC. www.site.com Anruf über Ajax Cors zu localhost:9090, aber Localhost kann keine Cookies mit der Domäne ".site.com" erstellen.

Also, ich habe erstellt: widgets.site.com mit benutzerdefinierten Host als REVERSE PROXY zu localhost:9090, so dass ich weiterhin Edit And Continue Feature verwenden kann.

Wie kann mein Localhost einen Cookie auf die Wildcard-Domain ".site.com" setzen? (Denken Sie daran, widgets.site.com ist ein Proxy zu localhost:9090)

Hier ist die Reverse-Proxy:

<rewrite> 
    <rules> 
     <rule name="ReverseProxyInboundRule1" stopProcessing="true"> 
      <match url="(.*)" /> 
      <action type="Rewrite" url="http://localhost:9090/{R:1}" /> 
      <conditions> 
      <add input="{HTTP_COOKIE}" pattern="(.*)" /> 
      </conditions> 
      <serverVariables> 
      <set name="HTTP_ACCEPT_ENCODING" value="" /> 
      <set name="HTTP_COOKIE" value="{c:1}" /> 
      </serverVariables> 
     </rule> 
    </rules> 
    <outboundRules> 
     <rule name="ReverseProxyOutboundRule1" preCondition="ResponseIsHtml1"> 
      <match filterByTags="A, Form, Img" pattern="^http(s)?://widgets.site.com/(.*)" /> 
      <action type="Rewrite" value="http{R:1}://localhost/{R:2}" /> 
     </rule> 
     <preConditions> 
      <preCondition name="ResponseIsHtml1"> 
       <add input="{RESPONSE_CONTENT_TYPE}" pattern="^text/html" /> 
      </preCondition> 
     </preConditions> 
    </outboundRules> 
</rewrite> 

Antwort

1

Nach this sollten Sie für .domain.tld-Set-Cookie der Lage sein, und es sollte für www.domain.tld arbeiten. Aus meinen Tests scheint es aber, dass es auch auf domain.tld (in Firefox) funktioniert.

P.S. Sie können den Reverse-Proxy komplett überspringen, indem Sie 127.0.0.1 widgets.site.com zu C:\Windows\System32\drivers\etc\hosts | hinzufügen /etc/hosts. Dann würde Ihre Maschine widgets.site.com zu 127.0.0.1 auflösen.

+0

Danke, wenn ich den Host mache: '127.0.0.1 widgets.site.com', muss ich die Projekteinstellungen so konfigurieren, dass ich einen externen Host verwende, dann verliere ich die Edit - und - Fortsetzungs - Funktion (deshalb poste ich die Frage). – SexyMF