Аутентификация форм ASP.NET не работает с обратным прокси - PullRequest
2 голосов
/ 15 декабря 2010

У меня есть приложение ASP.NET. Помимо локальных пользователей, обращающихся к приложению напрямую, я хочу предоставить его внешним пользователям через обратный прокси-сервер (который работает на другом компьютере в демилитаризованной зоне)

например, скажем, внутренние пользователи используют URL http://intranet1/myApplication/default.aspx, внешние пользователи могут использовать URL http://www.mycompany.com/externalApplication/default.aspx

это довольно просто настроить с переадресацией URL, но есть проблема, когда включена аутентификация с помощью форм. если внешний пользователь обращается к сайту URL, формы auth пытаются автоматически отправить их на страницу входа, которая перенаправляет их на относительный URL /myApplication/LoginPage.aspx. Что касается веб-приложения, корень приложения находится в / myApplication, а не в / externalApplication. Конечно, внешний пользователь, входящий через брандмауэр, не понимает этот URL, поэтому запрос завершается с 404

есть ли разумное решение для этого?

1 Ответ

2 голосов
/ 15 декабря 2010

Вы не должны перенаправлять на «/myApplication/LoginPage.aspx», а на «~ / Login.aspx», поэтому его правильное сопоставление зависит от того, на какой URL-адрес попадает пользователь.

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