2014-07-03 18 views
8

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.

risposta

3

Falso avviso, falso allarme.

Era il mio debugger di Visual Studio, che ha appena segnalato l'eccezione.

Naturalmente, come al solito, ho spinto "Break" e l'app è andata giù. Premendo invece "Continua", mi hai reindirizzato alla pagina corretta.

+0

È 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

Problemi correlati