2010-11-29 11 views

Antwort

24

Formal ist 403 Verboten die richtige Antwort. Es ist definiert als

Autorisierung wird nicht helfen und die Anfrage sollte nicht wiederholt werden.

Das verwirrende Teil sein kann „Authorization wird nicht helfen“, aber sie wirklich bedeuten „HTTP-Authentifizierung“ (WWW-Authenticate)

+3

Dies bedeutet, dass der Benutzer die Anfrage nie erneut versuchen sollte. Dies ist nicht angemessen. –

+2

Technisch glaube ich, dass Sie richtig sind. Im Fall der praktischen Implementierung glaube ich, dass eine 200 mit einer HTML-basierten Fehlermeldung oder 302, die auf eine andere Seite umleitet, auf der eine sitzungsbasierte Anmeldung stattfinden kann, häufiger ist (und vielleicht sogar nützlicher ist). – userx

+6

@Erik Philips - Das ist richtig, die Anfrage sollte nicht sein. Sobald die Header der Anfrage so geändert sind, dass sie einen korrekten Sitzungscookie haben (also nicht die SAME-Anfrage), wird der Zugriff gewährt. – userx

5

403 Ich glaube, technisch korrekt ist (und wahrscheinlich am effektivsten, wenn Sie implementieren eine benutzerdefinierte API/Protokoll).

401 ist nicht geeignet, da es sich auf die Autorisierung mit einem WWW-Authenticate-Header bezieht, was ein Sitzungscookie nicht ist.

Wenn es sich um eine öffentlich zugängliche Website handelt, auf der Sie versuchen, den Zugriff aufgrund eines Sitzungscookies zu verweigern, 200 mit einer geeigneten Stelle, um anzugeben, dass eine Anmeldung erforderlich ist, oder eine 302 temporäre Weiterleitung zu einer Anmeldeseite ist am besten.

+0

Dies wäre fixierbar mein tatsächlich definieren ein Cookie-basierte HTTP-Authentifizierungsschema. –

+0

@Julian Reschke - Gut Cookies haben per Definition nicht viel mit Authentifizierung zu tun; In erster Linie fügen sie einem "state less" -Protokoll, HTTP, eine gewisse Menge an "Status" hinzu. Cookies selbst authentifizieren nichts. Es handelt sich einfach um Informationen, die an einen Server gesendet werden, den der Server zuvor vom Browser angefordert hat. Ja, diese Informationen können verwendet werden, um festzustellen, ob Sie zuvor als Benutzer authentifiziert wurden (normalerweise über HTTP POST/GET). Es kann auch einfach verwendet werden, um anzuzeigen, ob Sie zuvor eine bestimmte Anzeige gesehen oder diese Website vor und wann besucht haben. – userx

-2

Sie können die Verwendung einer Testbedingung machen und auf dem Code

Fehler passieren: 401.1-Anmeldung fehlgeschlagen. Der Anmeldeversuch ist nicht erfolgreich, wahrscheinlich aufgrund eines ungültigen Benutzernamens oder Kennworts.

Dies ist speziell für das falsche Passwort oder nicht übereinstimmenden Benutzernamen und Passwort verwendet. Hoffe das hilft dir.

+0

401.1 scheint Microsoft spezifisch zu sein http://support.microsoft.com/kb/247593 – deamon

+0

Ist gibt es einen RFC, der 401.1 definiert? – deamon

+0

HTTP-Statuscodes bestehen aus drei Ziffern. Es gibt nicht so etwas wie NNN.N auf der Leitung (außer vielleicht in der * Nachricht *, die keine Bedeutung hat) –