Превратите ASP.NET "ReturnURL" в абсолютный URL - PullRequest
4 голосов
/ 02 марта 2012

У меня есть два защищенных сайта:

siteA.example.com
siteB.example.com

На siteA.example.com существует общая страница входа.Если вы зашли на siteB.example.com без входа в систему, вы будете перенаправлены на siteA.example.com.URL в конечном итоге выглядит следующим образом:

http://siteA.example.com/Account/LogOn?ReturnUrl=%2f

Это не работает для меня, потому что обратный URL фактически заканчивается тем, что вы переходите на домашнюю страницу siteA.example.comдаже если пользователь посетил siteB.example.com.

Существует ли настраиваемый способ исправить это?Или я должен просто подключиться к одному из событий глобального жизненного цикла, чтобы изменить ответ?

Ответы [ 3 ]

2 голосов
/ 02 марта 2012
1 голос
/ 18 января 2013

Я нашел этот маленький трюк:

изменить настройки для

 <forms loginUrl="http://google.com/Login?domain=http://google.fr/" />

Где google.com - это место, где вы вводите свои учетные данные, а google.fr - приложение, для которого требуется авторизованный пользователь.

Тогда вам просто нужно объединить это с параметром ReturnUrl перед перенаправлением пользователя.

0 голосов
/ 02 марта 2012

При установке значения для returnURL используйте UrlHelper. Используйте перегрузку, позволяющую установить имя хоста, и передайте sizeA.example.com.

UrlHelper.GenerateUrl(null, "action", "controller", "http", "siteA.example.com", null, new { id = "Awesome" }, routes);
...