我创建了一个新的 Blazor WebAssembly 项目,并尝试使用
Microsoft.Identity.Web
版本 2.6.1
以及 Microsoft.Identity.Web.UI 2.6.1
将身份验证与 Azure B2C 集成。但是,在项目构建过程中,我遇到了以下错误:
没有可用于指定 RuntimeIdentifier“browser-wasm”的 Microsoft.AspNetCore.App 运行时包。
<Project Sdk="Microsoft.NET.Sdk.BlazorWebAssembly">
<PropertyGroup>
<TargetFramework>net8.0</TargetFramework>
<Nullable>enable</Nullable>
<ImplicitUsings>enable</ImplicitUsings>
</PropertyGroup>
<ItemGroup>
<_ContentIncludedByDefault Remove="wwwroot\appsettings.json" />
</ItemGroup>
<ItemGroup>
<PackageReference Include="Microsoft.Identity.Web" Version="2.6.1" />
<PackageReference Include="Microsoft.Identity.Web.UI" Version="2.6.1" />
</ItemGroup>
<ItemGroup>
<PackageReference Include="Microsoft.AspNetCore.Components.WebAssembly" Version="8.0.1" />
<PackageReference Include="Microsoft.AspNetCore.Components.WebAssembly.DevServer" Version="8.0.1" PrivateAssets="all" />
</ItemGroup>
</Project>
我不知道如何解决这个问题。我已经安装了必要的软件包,但 RuntimeIdentifier“browser-wasm”的 Microsoft.AspNetCore.App 运行时包似乎存在问题。
我该如何解决这个问题?
您在 csproj 文件中有
<Project Sdk="Microsoft.NET.Sdk.BlazorWebAssembly">
,因此您拥有一个 .net 8 blazor Web 程序集独立应用程序。我可以通过将 Microsoft.Identity.Web
和 Microsoft.Identity.Web.UI
添加到我的 blazor Web Assembly 应用程序中来重现您的问题,该应用程序是由 .net 8 blazor Web Assembly 独立应用程序的默认模板创建的,选择 Microsoft Identity
作为身份验证类型。
在这种情况下,我们不应该使用
Microsoft.Identity.Web
,因为它用于服务器端 Web 应用程序,但我们拥有的是客户端应用程序或称为 single page application
。
初始化应用程序的最简单方法是按照本教程注册 B2C 租户并创建自定义用户流程。然后,这是我们创建一个新项目的命令。
dotnet new blazorwasm -au IndividualB2C --aad-b2c-instance "{AAD B2C INSTANCE}" --client-id "{CLIENT ID}" --domain "{TENANT DOMAIN}" -o {PROJECT NAME} -ssp "{SIGN UP OR SIGN IN POLICY}"