Sono abbastanza nuovo per Nancy e sto ora sperimentando con Auth. In attesa di implementare completamente l'autenticazione basata su form.L'autenticazione per-Route sta causando RouteExecutionEarlyExitException
Per scopi di test, ho impostato 3 moduli.
altro modulo:
public class OtherModule : NancyModule
{
public OtherModule() : base()
{
// Use global, module level authentication.
this.RequiresAuthentication();
Get["/other"] = _ =>
{
return "Other";
};
Get["/woot"] = _ =>
{
return "Woot";
};
}
}
Modulo principale:
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]";
};
}
}
Ora, whe n Accedo a /other
e/o /woot
, sono reindirizzato a /login
- come previsto. Tuttavia, quando si naviga su /yolo
, l'applicazione genera uno Nancy.ErrorHandling.RouteExecutionEarlyExitException
, in cui presumo che debba reindirizzare a /login?returnUrl=seeme
.
Ho attraversato the github forms auth source, che presenta il comportamento in this file. Non riesco a trovare differenze importanti (il mio Bootstrapper, il mio IUserMapper, il mio IUserIdentity).
Il mio uso è sbagliato qui? Dovrei provare/prenderlo e preparare le risposte di conseguenza? E 'un errore?
Sto eseguendo NancyFX in un ambiente self-hosted (Nancy.Hosting.Self
), senza ASP e senza OWIN.
È anche possibile aprire le impostazioni Eccezione di Visual Studio e premere "Aggiungi ...", scegliere "Common Language Runtime" e digitare "Nancy.ErrorHandling.RouteExecutionEarlyExitException". Quindi è necessario deselezionare le due caselle di controllo. Da ora in poi Visual Studio ignorerà questa eccezione. – Auresco82