如何将中间件配置到 Blazor 应用程序

How to configure Middleware to Blazor app

我在,

我这里有一个 Blazor 应用程序,我想向其中添加中间件 class。但我找不到 startup.cs/IApplicationBuilder 来添加它。

我的项目只有 Program.cs class 和 void Main 方法。

那么如何配置中间件呢?仅仅添加一个名为 Startup.cs 的 class 并没有成功。

VS 2022/.Net 6.0

using Microsoft.AspNetCore.Components.WebAssembly.Hosting;
using Microsoft.AspNetCore.Mvc.Infrastructure;
// [other using]

public class Program
{
    public static void Main(string[] args)
    {
        var builder = WebAssemblyHostBuilder
            .CreateDefault(args);
        
        builder.RootComponents.Add<App>("#app");

        builder.Services
            .AddTransient<DevicePresentationService>()
            // [other Service registration]

        builder.Services.AddOidcAuthentication(options =>
        {
            builder.Configuration.Bind("Auth0", options.ProviderOptions);
            options.ProviderOptions.ResponseType = "code";
        });

        var webAssemblyHost = builder.Build();
        
        webAssemblyHost.RunAsync();  
    }
}

这是 .Net 6 中的新结构。您需要将所有先前的 Startup.cs 逻辑添加到 Program.cs

要添加中间件,请添加: var app = builder.Build();app.MyMiddleware();

确保将中间件的整个命名空间添加到文件顶部的 usings 或全局 usings 中。

Documentation

编辑:我没有看到这是一个 Web 程序集 Blazor 应用程序。 @Henk Holterman 是正确的,您不能在仅客户端应用程序上使用中间件。您需要将中间件添加到您的服务器。

So how to configure a Middleware?

中间件在服务器上运行。您发布了客户端的启动代码。

中间件是 'not applicable' 基于浏览器的应用程序。