2014-07-03 78 views
8

Şimdi oldukça yeni Nancy ve şimdi Auth ile deneme yapıyorum. Form kimlik doğrulamasını tamamen uygulamak için sabırsızlanıyorum.Her yol için kimlik doğrulaması neden oluyor RouteExecutionEarlyExitException

Test amacıyla, 3 modülüm var.

Diğer modülü:

public class OtherModule : NancyModule 
{ 
    public OtherModule() : base() 
    { 
     // Use global, module level authentication. 
     this.RequiresAuthentication(); 

     Get["/other"] = _ => 
     { 
      return "Other"; 
     }; 

     Get["/woot"] = _ => 
     { 
      return "Woot"; 
     }; 
    } 
} 

Ana modülü:

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]"; 
     }; 
    } 
} 

Şimdi, whe n /other ve/veya /woot'a gidiyorum, beklediğim gibi /login'a yönlendirildim. Yine de, /yolo'a gittiğimde, uygulama beni /login?returnUrl=seeme adresine yönlendirmesi gerektiğini düşündüğüm bir Nancy.ErrorHandling.RouteExecutionEarlyExitException atar.

this file'daki davranışı içeren the github forms auth source üzerinden yürüdüm. Büyük farklar bulamıyorum (benim Bootstrapper, benim IUserMapper, benim IUserIdentity).

Kullanımım yanlış mı? Onu yakalamaya/yakalamaya ve buna göre cevaplar vermeye mi çalışmalıyım? Bu bir hata mı?

NancyFX'i kendi kendini barındırılan bir ortamda (Nancy.Hosting.Self) çalıştırıyorum, ASP yok ve OWIN yok.

cevap

3

Yanlış uyarı, yanlış uyarı.

Sadece istisnayı bildiren benim Visual Studio hata ayıklayıcımdı. Tabii ki, her zamanki gibi "Break" i ittim ve uygulama azaldı. Bunun yerine "Devam Et" e basarsanız, beni doğru sayfaya yönlendirdim.

+0

Ayrıca, Visual Studio Özel Durum ayarlarını açıp "Ekle ..." düğmesine basabilir, "Ortak Dil Çalışma Zamanı" nı seçebilir ve "Nancy.ErrorHandling.RouteExecutionEarlyExitException" yazabilirsiniz. Ardından iki onay kutusunu işaretlemeniz gerekir. Visual Studio artık bu özel durumu dikkate almaz. – Auresco82

İlgili konular