C# ASP.Net MVC: RedirectFromLoginPage geht immer um die Standard-url, und nicht zu returnurl

Ich habe eine MVC4-Anwendung mit Mitgliedschafts-Anmeldung (über die FormsAuthentication).

Dieser ist definiert im web.config wie folgt.
Mein Standard-url home Stammverzeichnis (~/):

<roleManager enabled="true" />
<authentication mode="Forms">
  <forms defaultUrl="~" loginUrl="~/Account" />
</authentication>

In meinem AccountController im Login-post-Methode folgenden code relevant ist.
Dieser code wird ausgeführt, wenn der Benutzer klickt auf den login mit gültigen Anmeldedaten an.

if (Membership.ValidateUser(creds.Username, creds.Password))
{
    FormsAuthentication.RedirectFromLoginPage(creds.Username, false);
    return null;
}

Nun, wenn ich mich navigieren (anonym) zu: ~/Admin, ich bekommen umgeleitet zu ~/- Konto anmelden, das ist perfekt. Ich kann sehen, dass die url wie folgt gebildet wird:

http://localhost:23759/Account?ReturnUrl=%2fAdmin

Aber, wenn ich erfolgreich login, bekomme ich die Weiterleitung zu home (~/) anstelle von ~/Admin

Bitte Hilfe!!!
Vielen Dank!

Edit: Gefunden, das eigentliche Problem war: es war die post-Methode, die nicht erhalten die querystring -

  • Aus der MSDN-Website (msdn.microsoft.com/en-us/library/ka5ffkce.aspx): "Wenn die ReturnURL-variable nicht existiert, wird Sie die Methode RedirectFromLoginPage leitet auf die URL in der DefaultUrl-Eigenschaft." Sieht aus wie .NET-weiß nicht-Admin vorhanden ist. Vielleicht ist der Schrägstrich ("%2f") das Problem verursacht?
InformationsquelleAutor Recipe | 2013-09-13
Schreibe einen Kommentar