Ich bin ziemlich neu in Nancy und experimentiere jetzt mit Auth. Ich freue mich darauf, die Formularauthentifizierung vollständig zu implementieren.Per-Route-Authentifizierung verursacht RouteExecutionEarlyExitException
Zu Testzwecken habe ich 3 Module eingerichtet.
Andere Modul:
public class OtherModule : NancyModule
{
public OtherModule() : base()
{
// Use global, module level authentication.
this.RequiresAuthentication();
Get["/other"] = _ =>
{
return "Other";
};
Get["/woot"] = _ =>
{
return "Woot";
};
}
}
Hauptmodul:
public class MainModule : NancyModule
{
public MainModule() : base()
{
Get["/yolo"] = _ =>
{
// Use per-route authentication.
this.RequiresAuthentication();
return "#YOLO";
};
}
}
AuthModule:
public class AuthModule : NancyModule
{
public AuthModule() : base()
{
Get["/login"] = _ =>
{
return "To proceed, you must authenticate. [show form]";
};
}
}
Nun WHE n Navigieren Sie zu /other
und/oder /woot
, ich werde wie erwartet zu /login
weitergeleitet. Wenn ich jedoch zu /yolo
navigiere, wirft die Anwendung eine Nancy.ErrorHandling.RouteExecutionEarlyExitException
, wo ich annahm, dass sie mich an /login?returnUrl=seeme
umleiten sollte.
Ich bin durch the github forms auth source gegangen, die das Verhalten in this file kennzeichnet. Ich kann keine wesentlichen Unterschiede finden (meine Bootstrapper, meine IUserMapper, meine IUserIdentity).
Ist meine Verwendung hier falsch? Soll ich es versuchen und Antworten entsprechend vorbereiten? Ist es ein Fehler?
Ich führe NancyFX in einer selbst gehosteten Umgebung (Nancy.Hosting.Self
), kein ASP und kein OWIN.
Sie können auch Visual Studio Exception Einstellungen öffnen und klicken Sie auf "Hinzufügen ...", wählen Sie "Common Language Runtime" und geben Sie "Nancy.ErrorHandling.RouteExecutionEarlyExitException" ein. Dann müssen Sie die beiden Kontrollkästchen deaktivieren. Visual Studio ignoriert diese Ausnahme von nun an. – Auresco82