2013-02-23 18 views
5

Mam do czynienia ze starszą aplikacją mvc asp.net, która nie jest skonfigurowana tak, jak jestem przyzwyczajona. Po normalnym wylogowania poprzez:Problem z programem ReturnUrl w asp.net mvc

FormsAuthentication.SignOut(); 

i

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

URI zawiera:

ReturnUrl=%2f 

Zwykle nie jest to przypadek. Jak mogę to powstrzymać?

Alternatywnie, gdy próbuję uzyskać dostęp do strony wymagającej uwierzytelnienia/autoryzacji, pojawia się strona logowania, ale nie jest generowany odpowiedni komunikat ReturnUrl = (tzn. Identyfikator URI pozostaje taki, jaki jest).

Czy to jest problem IIS, który gdzieś przeczytałem, czy też asp.net FormsAuthenticationModule nie jest poprawnie skonfigurowany? Dzięki.

+0

Może być powiązany? http://stackoverflow.com/questions/8205368/request-redirect-to-account-loginreturnurl-2f-since-mvc-3-install-on-server – Allov

+0

Przenieśli się przez to przed wysłaniem ... nie sądzę jednak . – cs0815

+0

Jakiej wersji MVC używasz? – Alex

Odpowiedz

1

ReturnURL dodaje się podczas nieautoryzowanej przekierowania. Wydaje się, że ktoś przekierowuje adres URL katalogu głównego (/) do siebie lub do strony głównej/indeksu. % 2f jest zakodowaną formą "/".

Sprawdziłbym sekcję autoryzacji pliku web.config pod kątem czegoś, co wygląda nie tak.

0

To zależy od trasy, prawda? Jeśli masz to jak ostatnio konfiguracji trasy:

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

Jeśli nic nie działa, to dodaj tryb uwierzytelniania = "Windows" w atrybucie system.web w pliku Web.Config. mam nadzieję, że to zadziała dla ciebie.

Powiązane problemy