ReturnUrl = Default.aspx для MVC?
Я пытаюсь защитить весь свой сайт MVC, поэтому перед контроллером Home я добавил атрибут [Authorize].
Теперь, если вы запустите его из Visual Studio или перейдете по корневому URL (например, http://localhost:2897/), он, как и ожидалось, перенаправит вас на страницу входа. Однако URL-адрес в адресной строке после перенаправления выглядит следующим образом: http://localhost:2897/Account/LogOn?ReturnUrl=%2Fdefault.aspx%3F
Я не проверял это, поскольку я не реализовал свой код аутентификации. Тем не менее, это выглядит для меня большой проблемой, поскольку у меня нет проекта default.aspx!
Мой тег аутентификации в web.config выглядит так:
<authentication mode="Forms">
<forms loginUrl="~/Account/LogOn" defaultUrl="~/Home/Index" timeout="2880"/>
</authentication>
Почему он не выбирает этот маршрут как ReturnUrl по умолчанию вместо default.aspx?
1 ответ
ASP.NET (если быть точным, FormsAuthentication.RedirectFromLoginPage
) всегда игнорирует defaultUrl
установка в web.config
когда ReturnUrl
параметр присутствует. Это только приветствуется, когда вы идете прямо на страницу входа без прохождения каких-либо ReturnUrl
параметры.
Шаблон проекта ASP.NET MVC предоставляет пустое Default.aspx
шаблон для обработки подобных запросов в режиме конвейера IIS Classic. Вы должны быть в порядке с этим.