使用Nancy whit Owin和WebForms

Dav*_*ovo 9 asp.net nancy owin

在一个没有编译的旧webform 站点项目中esclude使用管道中的aspx页面有一种方法吗?nancy.Owin

当我将nancy配置为post-back并且请求是一个aspx页面时,将删除post-back,因为nancy删除它并调用该页面.

public void NancyConfig(IAppBuilder app)
{
    app.UseNancy(options =>
    {
        options.Bootstrapper = new MyBootstrapper();
        options.PerformPassThrough = (context => context.Response.StatusCode == HttpStatusCode.NotFound);
    });

    app.UseStageMarker(PipelineStage.MapHandler);
}
Run Code Online (Sandbox Code Playgroud)

options.PerformPassThrough擦后门柱的内容和调用页面.因为没有回发是好的,但是在后期详细说明中,这呈现出无限循环.

如何NancyFx在passtrought选项中配置不擦除回发?

Dav*_*ovo 6

我已经修改了nancy官方1.4源代码从.aspx和管道中的其他页面中退出,返回请求postback whitouth删除它.您可以在此处尝试此修改.

  • 文件修改:Nancy/src/Nancy/Owin/NancyMiddleware.cs
  • 这里是要在第82行申请的代码:

                //Check if the webform is not present inthe path ".aspx"
                //if present move to next
                if (owinRequestPath.ToLowerInvariant().Contains(".aspx")
                || owinRequestPath.ToLowerInvariant().Contains(".asmx")
                || owinRequestPath.ToLowerInvariant().Contains(".ascx")
                || owinRequestPath.ToLowerInvariant().Contains(".ashx")
                || owinRequestPath.ToLowerInvariant().Contains(".asmx")
                || owinRequestPath.ToLowerInvariant().Contains(".asax")
                ) return next.Invoke(environment);
    
    Run Code Online (Sandbox Code Playgroud)

  • 编辑您的答案并添加链接中的代码. (2认同)