Bypass Forms Authentication - Automatische Umleitung zur Anmeldung, Gewusst wie?

Ich schreibe eine App mit asp.net-mvc, die auf iis6 bereitgestellt wird. Ich verwende die Formularauthentifizierung. Wenn ein Benutzer versucht, ohne entsprechende Berechtigung auf eine Ressource zuzugreifen, möchte ich, dass er auf eine Anmeldeseite umgeleitet wird. FormsAuth erledigt das für mich ganz einfach.

Problem: Jetzt wird auf eine Aktion von einer Konsolen-App zugegriffen. Wie kann diese Aktion am schnellsten mit Status 401 beantwortet werden, anstatt die Anforderung auf die Anmeldeseite umzuleiten?

Ich möchte, dass die Konsolen-App auf diesen 401-Statuscode reagiert, anstatt dass er transparent ist. Ich möchte auch die Standardeinstellung beibehalten und nicht autorisierte Anfragen an das Verhalten der Anmeldeseite umleiten.

Hinweis: Als Test habe ich dies zu meinem global.asax hinzugefügt und es hat Forms auth nicht umgangen:

protected void Application_AuthenticateRequest(object sender, EventArgs e)
{
    HttpContext.Current.SkipAuthorization = true;
}

ale und An

Ich verwende den AuthorizeAttributeFilter, der in der MVC-Vorschau 4 bereitgestellt wird. Dies gibt ein HttpUnauthorizedResult zurück. Dieses Ergebnis setzt den statusCode korrekt auf 401. Das Problem ist, wie ich es verstehe, dass asp.net die Antwort abfängt (seit es als 401 bezeichnet wird) und zur Anmeldeseite umleitet, anstatt sie nur durchzulassen. Ich möchte dieses Abfangen für bestimmte URLs umgehen.

Antworten auf die Frage(10)

Ihre Antwort auf die Frage