2013-02-23 4 views
5

Мне нужно иметь дело с устаревшим приложением asp.net mvc, которое не настроено так, как я привык. После выхода из системы через нормальный:Проблема с ReturnUrl с asp.net mvc

FormsAuthentication.SignOut(); 

и

return RedirectToAction("Index", "Home"); 

в URI содержит:

ReturnUrl=%2f 

Это обычно не так. Как я могу подавить это?

В качестве альтернативы при попытке доступа к странице, для которой требуется аутентификация/авторизация, открывается страница входа в систему, но не создается соответствующий ReturnUrl = (т. Е. URI остается таким, какой он есть).

Является ли это проблемой IIS, которую я где-то читал, или ASP.NET FormsAuthenticationModule неправильно настроен? Благодарю.

+0

Может быть связано? http://stackoverflow.com/questions/8205368/request-redirect-to-account-loginreturnurl-2f-since-mvc-3-install-on-server – Allov

+0

Пришел к этому, прежде чем публиковать ... так не думайте , – cs0815

+0

Какую версию MVC вы используете? – Alex

ответ

1

ReturnUrl добавляется во время несанкционированного редиректа. Кто-то, кажется, перенаправляет корень url (/) самому себе или в Home/Index. % 2f - это закодированная форма «/».

Я бы проверял раздел авторизации web.config на то, что выглядит неправильно.

0

Это зависит от вашей маршрутизации, не так ли? Если у вас есть это, как вы последняя конфигурация маршрута:

routes.MapRoute(
"Default", 
"{controller}/{action}/{id}", 
new { controller = "Home", action = "Index", id = UrlParameter.Optional }); 
0

Если ничего не работает, добавьте в свой файл Web.Config режим аутентификации = "Windows" в свой атрибут system.web. надеюсь, что это сработает для вас.