如何在单个网站中运行多个 Blazor 应用程序

Din*_*vak 5 c# asp.net-core blazor blazor-server-side blazor-webassembly

我想创建一个网站,其中一些子功能将拆分到多个 Blazor 项目中。

因此,主站点是一个 Blazor 应用程序,但 /private 和 /shop 是单独的 Blazor 应用程序,用户需要注册并登录才能访问功能。由于主站点应该具有所有站点通用的导航栏(有登录和注册按钮),因此如何在 Blazor 应用程序之间进行通信?

如果我在主站点上设置身份验证并在主站点中使用 AppState 来存储值,那么在 /private 中运行的子应用程序如何访问此数据(例如 isLogged in 或 userName 数据)。

Roo*_*Eat 3

这看起来很有希望:Blazor 具有多个应用程序

我也一直在试图弄清楚如何做到这一点。上面的示例演示了如何在单个解决方案中将两个客户端 Blazor 应用程序与单个服务器端 Blazor 应用程序链接。我从该示例中取出的主要内容是在服务器端应用程序启动时添加了配置。

        app.MapWhen(ctx => ctx.Request.Path.StartsWithSegments("/FirstApp"), first =>
        {
            first.UseBlazorFrameworkFiles("/FirstApp");
            first.UseStaticFiles();

            first.UseRouting();
            first.UseEndpoints(endpoints =>
            {
                endpoints.MapControllers();
                endpoints.MapFallbackToFile("FirstApp/{*path:nonfile}", "FirstApp/index.html");
            });
        });

        app.MapWhen(ctx => ctx.Request.Path.StartsWithSegments("/SecondApp"), second =>
        {
            second.UseBlazorFrameworkFiles("/SecondApp");
            second.UseStaticFiles();

            second.UseRouting();
            second.UseEndpoints(endpoints =>
            {
                endpoints.MapControllers();
                endpoints.MapFallbackToFile("SecondApp/{*path:nonfile}", "SecondApp/index.html");
            });
        });
Run Code Online (Sandbox Code Playgroud)

希望这可以帮助。