У меня есть эта проблема в производственном приложении, где параметры строки запроса добавляются в URL перенаправления входа в систему. Чтобы воспроизвести это, создайте новый проект MVC (я тестировал и MVC2, и MVC3 R2). В HomeController
добавьте следующее действие:
public ActionResult Break()
{
return new HttpUnauthorizedResult();
}
Запустите приложение и нажмите /home/break?a=1&b=2
. Так что это, естественно, должно перенаправить на /Account/LogOn?ReturnUrl=/home/break%3fa%3d1%26b%3d2
, но фактически добавляет запрошенные параметры (&a=1&b=2
) и в конец URL:
Почему это происходит? Нет необходимости добавлять эти параметры, поскольку закодированный URL в ReturnUrl
имеет обязательные параметры. Я думал, что это будет что-то в производственном приложении, но если выполнить вышеуказанные шаги, приложение MVC по умолчанию также воспроизведет это. Любые мысли о том, как решить эту проблему, приветствуются.