Ich habe eine ASP.NET-Anwendung. Neben lokalen Benutzern, die direkt auf die Anwendung zugreifen, möchte ich sie über einen Reverseproxy (der auf einem anderen Computer in der DMZ ausgeführt wird) externen Benutzern zugänglich machen.ASP.NET-Formularauthentifizierung funktioniert nicht mit Reverseproxy
Zum Beispiel sagen interne Benutzer die URL http://intranet1/myApplication/default.aspx, extern Benutzer können die URL http://www.mycompany.com/externalApplication/default.aspx
verwenden Dies ist ziemlich einfach mit URL rerwiting einzurichten, aber es gibt ein Problem, wenn Formularauthentifizierung aktiviert ist. Wenn ein externer Benutzer die URL-Site aufruft, versucht forms auth, sie automatisch an die Anmeldeseite zu senden, die sie an die relative URL/myApplication/LoginPage.aspx weiterleitet. Soweit es die Web-App betrifft, befindet sich der Anwendungsstamm unter/myApplication not/externalApplication. Natürlich versteht der externe Benutzer, der durch die Firewall hereinkommt, diese URL nicht, so dass die Anfrage mit einem 404
keine vernünftige Lösung gibt.
Es würde auch nicht schaden, die Anwendung als den gleichen Ordner auf beiden Servern definiert zu haben. –
Danke Alexanderb, Das ist genau das, was ich gesucht habe. Ich hatte komplett vergessen, dass die URL in der web.config konfigurierbar war. – Andy
Hmm, ich habe schon wieder darüber nachgedacht. Sicherlich unterscheidet sich Ihr Vorschlag nicht von meiner ursprünglichen Konfiguration (loginurl = "/ MyApplication/default.aspx"), da das ~ in/MyApplication konvertiert wird, bevor die Weiterleitung an den Browser gesendet wird – Andy