1

我有一些 ASP.NET Core 代码要提取到自定义中间件中。具体来说,应该实现如下逻辑:当请求某个路径时mapPath,将请求代理到另一个主机,由proxyUrl.

下面的代码Startup.cs可以解决问题:

var proxyUri = new Uri(proxyUrl);
builder.Map(
    mapPath,
    appMapped =>
    {
        appMapped.RunProxy(
            new ProxyOptions
                {
                    Scheme = proxyUri.Scheme,
                    Host = proxyUri.Host,
                    Port = proxyUri.Port.ToString()
                });
    }
);

好吧,它使用app.Map()分支然后代理中间件来代理请求。

(如何)是否可以将此逻辑提取到自定义和可重用的中间件?或者我不能在这里使用“真正的”中间件?我能做的当然是编写一个扩展方法,例如app.UseMapProxy()并将逻辑 1:1 放在那里,但我只是想知道我是否也可以使用“真正的”中间件类来做到这一点。

4

1 回答 1

1

这种设置最好封装在 IApplicationBuilder 扩展方法中。您不会在现有组件之外添加任何每个请求的功能,只是将它们连接在一起。

于 2016-06-09T22:48:46.817 回答