Not*_*bad 4 c# asp.net-core asp.net-core-middleware
我需要为我的所有端点运行两个中间件,但 /accounts/* 下的那些。
我在 ConfigureServices 中使用它:
public void ConfigureServices(IServiceCollection services)
{
...
services.AddControllers();
}
Run Code Online (Sandbox Code Playgroud)
和配置方法看起来像:
public void Configure(IApplicationBuilder app, IWebHostEnvironment env, IUserService userService)
{
app.UseCors(builder => builder
//.AllowAnyOrigin()
.SetIsOriginAllowed((host) => true)
.AllowAnyMethod()
.AllowAnyHeader()
.AllowCredentials());
app.UseRouting();
app.UseAuthentication();
//THIS IS WHAT I JUST ADDED TO SUPPORT THE BRANCHING OF ROUTES
app.MapWhen(context =>
{
return !context.Request.Path.StartsWithSegments("/accounts");
}, appBuilder =>
{
appBuilder.UseMiddleware<TenantProviderMiddleware>();
appBuilder.UseMiddleware<UserClaimsBuilderMiddleware>();
});
//app.UseMiddleware<TenantProviderMiddleware>();
//app.UseMiddleware<UserClaimsBuilderMiddleware>();
app.UseAuthorization();
app.UseEndpoints(endpoints =>
{
endpoints.MapHub<VehicleHub>("/vehicle-hub");
endpoints.MapControllers();
});
}
Run Code Online (Sandbox Code Playgroud)
但我收到以下错误:
System.InvalidOperationException:请求到达管道末端,但未执行端点:'WebAPI.Controllers.VehiclesController.Get (WebApi)'。如果使用路由,请使用“IApplicationBuilder.UseEndpoints(...)”注册 EndpointMiddleware。
从错误中我明白我应该在 MapWhen 方法中使用 UseEndpoints 而不是 UseMiddleware 但无法正确使用。
那么我应该如何注册中间件?
| 归档时间: |
|
| 查看次数: |
1502 次 |
| 最近记录: |