我对Nancy还是很陌生,现在正在尝试Auth。期待全面实现Forms身份验证。

为了进行测试,我设置了3个模块。

其他模块:

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

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

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

主模块:
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]";
        };
    }
}

现在,当我导航到/other和/或/woot时,正如预期的那样,我被重定向到/login。但是,当我导航到/yolo时,该应用程序将抛出Nancy.ErrorHandling.RouteExecutionEarlyExitException,我以为它应该将我重定向到/login?returnUrl=seeme

我已经遍历了the github forms auth source,它具有this file中的行为。我似乎找不到任何主要差异(BootstrapperIUserMapperIUserIdentity)。

我在这里使用错了吗?我应该尝试/捕捉它并相应地准备响应吗?是 bug 吗?

我在自托管环境(Nancy.Hosting.Self)中运行NancyFX,没有ASP也没有OWIN。

最佳答案

错误警报,错误警报。

是我的Visual Studio调试器,刚刚报告了该异常。

当然,像往常一样,我按下了“Break”,应用程序崩溃了。按“继续”代替,确实将我重定向到正确的页面。

关于c# - 每路由身份验证导致RouteExecutionEarlyExitException,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/24556145/

10-16 16:11