Setup Meine Produktion ist wie folgt:ASP.NET OAuth mit Probleme mit URL Rewrite
- M1 - ASP.NET Webseite
- M2 - IIS URL 2.0 + Rewrite 3.0 ARR
Verwendung IIS URL Rewrite, jede Anforderung an m2, sagen http: // m2 /app/login.aspx wird auf M1 als http umgeleitet werden: // m1/app/logi n.aspx.
Auf M1 wurde ASP.NET Open Auth auf der Website implementiert, um die externe Authentifizierung von Google zu verwenden. Wenn ein Nutzer auf die Google-Schaltfläche klickt, wird der Browser auf die Google-Anmeldeseite umgeleitet, damit sich der Nutzer authentifizieren kann.
Aber wenn die Website von M2 zugegriffen wird, URL der Umleitung, die durch .net oAuth (https: // accounts.google.com/[Abfrage-string]) auf Google umgeleitet, ersetzt wird von URL Rewrite als http: // m2/[Abfragezeichenfolge].
Also nur um klar zu sein; Wenn die Anforderung zur Authentifizierung über einen externen Authentifizierungsanbieter erfolgt, wird eine 302 Weiterleitung zurückgegeben. Oft ist die Form kann dies wie folgt aussehen:
Antwort-Header:
...
Ort: https: // accounts.google.com/o/oauth2/Auth big_long_query_string
...
Diese Umleitung von einem Server (M1) erzeugt wird, die sich hinter dem Proxy-Server sitzt (M2 - IIS URL 2.0 Rewrite + ARR 3.0). So ist der Rewrite-Server schreibt die Location-Header an:
Antwort-Header:
...
Ort: http: // M1/o/oauth2/Auth big_long_query_string
...
Was wir brauchen, ist eine Regel, die nicht die Position URL-Umleitung nicht neu schreiben. Es kann nur bestimmte Redirects als Ziel haben. In den meisten Fällen ist das hier erwähnte Verhalten erwünscht, da alle Weiterleitungen zum Haupt-Proxy-Server umgeleitet werden. Kann jemand eine Lösung oder einen Workaround für bestimmte Weiterleitungen vorschlagen?
Haben Sie jemals die Lösung erarbeiten, wäre jetzt ein guter Zeitpunkt, um zu beantworten, wenn Sie getan haben, ich bin genau das gleiche Problem haben. –
Lassen Sie uns diesen Sauger antworten !!!!!!! –
Wir müssten die Rewrite-Regeln haben, um zu überprüfen, was falsch ist. –