HttpStatusCodeResult(401) gibt "302 Found"

Verwenden ASP.NET MVC 5, ich möchte wieder entsprechende HTTP-status-code für verschiedene Szenarien (401 für Benutzer nicht authentifiziert, 403, wenn der Benutzer hat keine Rechte für eine Ressource, etc.), als handle Sie in jQuery.

Aber das problem ist, wenn ich versuche zurück zu kehren 401, es gibt immer "302: Found". Was ist der trick für eine benutzerdefinierte status-code, und warum das nicht funktioniert?

public ActionResult My()
{
    if (User.Identity.IsAuthenticated == false)
    {
        return new HttpStatusCodeResult(401, "User is not authenticated."); 
            //Returns "302: Found"
    }

   //... other code ...
}

EDIT 1: Interessant, bit:

Wenn ich ersetzen die 401 und 404 so:

return new HttpNotFoundResult("User is not authenticated.");

Dann ist es in der Tat gibt ein 404 und jQuery fangen kann, das problem. Aber es ist nicht eine elegante Lösung, da der Fehler code ist anders.

EDIT 2: 302 ist nicht gut für mich, als wäre das Ergebnis verwendet werden jQuery.get().fail(), aber 302 nicht triger fail()

  • sind Sie die Formularauthentifizierung verwenden?
  • werfen Sie einen Blick auf diese: stackoverflow.com/questions/10348111/...
  • mrtig: ich habe gesehen, dies vor, aber hilft nicht, da es sagt, es ist gelöst durch die Verwendung von IIS express. Ich benutze IIS express, noch habe ich das problem.
  • Daniel A. Weiss: ich bin mit dem Standard-built-in auth ASP.NET MVC5 Vorlage als "Individuelle Benutzerkonten"
InformationsquelleAutor Adam Szabo | 2013-09-10
Schreibe einen Kommentar