在 Blazor Wasm 项目中集成 Azure B2C 时出错

问题描述 投票:0回答:1

我创建了一个新的 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 运行时包似乎存在问题。

我该如何解决这个问题?

c# blazor azure-ad-b2c blazor-webassembly
1个回答
0
投票

您在 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}"

© www.soinside.com 2019 - 2024. All rights reserved.