如何将中间件配置到 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 中。
编辑:我没有看到这是一个 Web 程序集 Blazor 应用程序。 @Henk Holterman 是正确的,您不能在仅客户端应用程序上使用中间件。您需要将中间件添加到您的服务器。
So how to configure a Middleware?
中间件在服务器上运行。您发布了客户端的启动代码。
中间件是 'not applicable' 基于浏览器的应用程序。
我在,
我这里有一个 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 中。
编辑:我没有看到这是一个 Web 程序集 Blazor 应用程序。 @Henk Holterman 是正确的,您不能在仅客户端应用程序上使用中间件。您需要将中间件添加到您的服务器。
So how to configure a Middleware?
中间件在服务器上运行。您发布了客户端的启动代码。
中间件是 'not applicable' 基于浏览器的应用程序。