Ich habe eine ASP.NET MVC3-Anwendung mit Windows-Authentifizierung auf IIS6 bereitgestellt. Wenn ein authentifizierter Benutzer auf einen Link klickt, zu dessen Anzeige er nicht berechtigt ist, werden er wie erwartet aufgefordert, seinen Benutzernamen und sein Passwort (in einem Browserdialog, nicht auf einer Seite) einzugeben.Erhalte leere Seite anstelle von 401 Fehlerseite
Nachdem ich jedoch dreimal auf Abbrechen oder ungültige Anmeldedaten geklickt habe, sehe ich eine leere weiße Seite, statt die nicht autorisierte 401-Seite zu sehen.
Wenn Sie Fiddler betrachten, gibt es drei Anfragen/Antworten, nachdem Sie auf Abbrechen geklickt haben. Hier sind die Antwort Zusammenfassungen und Header:
ASP.NET Zugriff wird verweigert Nachricht (401,2)
HTTP/1.1 401 Unauthorized Datum: Fr, 20. Juli 2012 14.34.21 GMT Server : Microsoft-IIS/6.0 WWW-Authenticate: Verhandeln WWW-Authenticate: NTLM X-Powered-By: ASP.NET X-ASPNET-Version: 4.0.30319 Cache-Control: privat Content-Type: text/html; charset = utf-8 Content-Length: 1701 Proxy-Support: Session-Based-Authentifizierung
IIS Sie nicht diese Seite zu sehen sind berechtigt, (401,1)
HTTP/1.1 401 Unauthorized Content- Länge: 1539 Content-Type: text/html Server: Microsoft-IIS/6.0 WWW-Authenticate: NTLM TlRMTVNTUAACAAAADAAMADgAAAAF ... (der Kürze halber weggelassen) X-Powered-By: ASP.NET Date: Fri, 20 Jul 2012 14:34:21 GMT Proxy-Unterstützung: Sitzungsbasierte Authentifizierung
Leere Antwort
HTTP/1.1 401 Unauthorized Datum: Fr, 20. Juli 2012 14.34.21 GMT Server: Microsoft-IIS/6.0 WWW-Authenticate: Verhandeln WWW-Authenticate: NTLM X-Powered-By: ASP.NET X-ASPNET-Version: 4.0.30319 X-AspNetMvc-Version: 3.0 Cache-Control: privat Content-Length: 0 Proxy-Support: Session-Based-Authentifizierung
Wie bekomme ich dies, um eine 401-Fehlerseite anzuzeigen?
Update 1:
Hier Abschnitt meine web.config Fehler.
<customErrors mode="RemoteOnly" defaultRedirect="~/Error" />
Ich verwende auch HandleErrorAttribute
.
Ich vermute, dass IIS die leere Seite anstelle von ASP.NET zurückgibt, aber ich bin nicht sicher, wie das zu beweisen ist.
Update 2:
Das ist interessant.Wenn ich die leere Seite aktualisiere, sehe ich die Meldung ASP.NET-Zugriff verweigert.
Nur eine Vermutung, aber versucht sie, sie auf die Seite Benutzername und Passwort zurückzuleiten, weil sie immer noch nicht autorisiert sind? Und da es denkt, dass es den Benutzer behandelt, hat die Ansicht nichts anzuzeigen? –
Es ist keine Login-Seite, es ist der Browser-Login-Dialog. – jrummell
Ah Entschuldigung, habe diesen Teil nicht gesehen. Nach dem dritten Versuch werden Sie sie auf die 401-Seite umleiten? Wenn nicht, bleiben Sie auf der gleichen Seite, aber Sie erhalten keinen Inhalt angezeigt, weil der Server keine sendet. –