/ Die ASP.NET-Formularauthentifizierung funktioniert nicht mit Reverse Proxy - asp.net, Url-Rewriting, Formularauthentifizierung, Reverse-Proxy

Die ASP.NET-Formularauthentifizierung funktioniert nicht mit Reverseproxy - asp.net, URL-Rewriting, Formularauthentifizierung, Reverseproxy

Ich habe eine ASP.NET-Anwendung. Neben lokalen Benutzern, die direkt auf die Anwendung zugreifen, möchte ich sie externen Benutzern über einen Reverse-Proxy (der auf einem anderen Computer in der DMZ ausgeführt wird) zur Verfügung stellen.

Nehmen wir beispielsweise an, interne Benutzer verwenden die URL http://intranet1/myApplication/default.aspxExterne Benutzer verwenden möglicherweise die URL http://www.mycompany.com/externalApplication/default.aspx

Dies ist ziemlich einfach mit URL einzurichtenWenn Sie die Formularauthentifizierung aktivieren, besteht ein Problem. Wenn ein externer Benutzer auf die URL-Site zugreift, versucht Formulare auth, diese automatisch an die Anmeldeseite zu senden, die sie zur relativen URL /myApplication/LoginPage.aspx umleitet. In Bezug auf die Web-App befindet sich das Anwendungsstammverzeichnis unter / myApplication nicht / externalApplication. Natürlich versteht der externe Benutzer, der über die Firewall eingeht, diese URL nicht, daher schlägt die Anforderung mit einem 404 fehl

Gibt es dafür eine sinnvolle Lösung?

Antworten:

2 für die Antwort № 1

Sie sollten nicht zu "/myApplication/LoginPage.aspx", sondern zu "~ / Login.aspx" umleiten, da dies korrekt zugeordnet wird, je nachdem, auf welche URL der Benutzer trifft.

<authentication mode="Forms">
<forms loginUrl="~/Login.aspx" timeout="2880" />
</authentication>