C# 如何在一个网站上运行多个Blazor应用程序

C# 如何在一个网站上运行多个Blazor应用程序,c#,asp.net-core,blazor,blazor-server-side,blazor-webassembly,C#,Asp.net Core,Blazor,Blazor Server Side,Blazor Webassembly,我想创建一个网站,其中一些子功能将在多个Blazor项目中拆分 所以主站点是一个Blazor应用程序,但是/private和/shop是独立的Blazor应用程序,用户需要注册并登录才能访问功能。 由于主站点应该有所有站点通用的导航栏(登录和注册按钮在那里),您如何在Blazor应用程序之间进行通信 如果我在主站点上设置了身份验证,并在主站点中使用AppState存储值,则在/private中运行的子应用程序如何访问此数据(例如isLogged in或userName数据)。这似乎很有希望: 我

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

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

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

这似乎很有希望:

我也一直在想怎么做。上面的示例显示了如何在单个解决方案中将两个客户端Blazor应用程序与单个服务器端Blazor应用程序链接。我从该示例中得到的主要内容是在服务器端应用程序启动时添加了Configure

        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");
            });
        });
希望这有帮助