【发布时间】:2019-08-26 11:49:06
【问题描述】:
我想将过滤器合并到我创建的网关 API 项目中。这个项目中没有控制器(我认为这很重要)。它面向多个微服务,充当反向代理,并执行横切关注点和编排。我需要对管道中的请求应用各种过滤器 - 主要是包含标头数据。我无法应用过滤器——断点不会被命中,也没有例外。
我有 3 个问题:
如何让过滤器工作?
如何在设计时将参数传递给过滤器?
如何在运行时将参数传递给过滤器(依赖项)?见最后一行代码示例
STARTUP.CS
public void ConfigureServices(IServiceCollection services)
{
var logger = _loggerFactory.CreateLogger<Startup>();
services.AddCors(options =>
{
options.AddPolicy("app-cors-policy",
builder =>
{
builder
.AllowAnyOrigin()
.AllowAnyHeader()
.AllowAnyMethod()
.AllowCredentials()
.WithExposedHeaders("Content-Disposition") //headers to be exposed
;
});
});
services.AddMvc(options =>
{
options.Filters.Add(new ContentDispositionFilter(?????));
});
}
public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory)
{
app.UseCors("app-cors-policy").UseMvc();
app.Run(async (context) =>
{
_router.Request = context.Request;
var httpResponseMessage = await _router.RouteRequest();
if (httpResponseMessage.IsSuccessStatusCode)
{
//
// *** HOW DO I PASS httpResponseMessage TO A FILTER *** ???
//
【问题讨论】:
标签: c# asp.net-core .net-core asp.net-core-webapi asp.net-core-2.1