gpt4 book ai didi

c# - 将 Azure Active Directory 身份验证添加到 Blazor WebAssembly 应用程序

转载 作者:行者123 更新时间:2023-12-03 01:15:25 24 4
gpt4 key购买 nike

我有一个现有的 Blazor Web Assembly 应用,并且正在尝试实现 Azure AD 身份验证,以便只有使用工作帐户登录的用户才能访问该 Web 应用。

我正在尝试遵循此Microsoft guide 。我已经安装了 Microsoft.Authentication.WebAssembly.Msal nuget 包,但是在我的 Program.cs 中,我收到以下错误:

IServiceCollection does not contain a definition for AddMsalAuthentication.

对于以下代码块:

builder.Services.AddMsalAuthentication(options =>
{
builder.Configuration.Bind("AzureAd", options.ProviderOptions.Authentication);
});

关于为什么以及如何解决这个问题有什么建议吗?

最佳答案

在 Visual Studio 中创建 Blazor WebAssembly 应用

enter image description here

Program.cs文件中,添加您提到的代码。

builder.Services.AddMsalAuthentication(options =>
{
builder.Configuration.Bind("AzureAd", options.ProviderOptions.Authentication);
});

最初我也遇到了同样的错误。

enter image description here

BlazorApp1.Server 应用程序中,安装了 Microsoft.Authentication.WebAssembly.Msal NuGet 包。

<PackageReference Include="Microsoft.Authentication.WebAssembly.Msal" Version="7.0.2" />
  • 现在我可以毫无问题地构建应用程序。

我的 BlazorApp1.Server .csproj 文件:

<Project Sdk="Microsoft.NET.Sdk.Web">
<PropertyGroup>
<TargetFramework>net7.0</TargetFramework>
<Nullable>enable</Nullable>
<ImplicitUsings>enable</ImplicitUsings>
<UserSecretsId>BlazorApp1.Server-****</UserSecretsId>
</PropertyGroup>

<ItemGroup>
<PackageReference Include="Microsoft.AspNetCore.Components.WebAssembly.Server" Version="7.0.0" />
<PackageReference Include="Microsoft.Authentication.WebAssembly.Msal" Version="7.0.2" />
</ItemGroup>

<ItemGroup>
<ProjectReference Include="..\Client\BlazorApp1.Client.csproj" />
<ProjectReference Include="..\Shared\BlazorApp1.Shared.csproj" />
</ItemGroup>

<ItemGroup>
<PackageReference Include="Microsoft.AspNetCore.Diagnostics.EntityFrameworkCore" Version="7.0.0" />
<PackageReference Include="Microsoft.AspNetCore.Identity.EntityFrameworkCore" Version="7.0.0" />
<PackageReference Include="Microsoft.AspNetCore.Identity.UI" Version="7.0.0" />
<PackageReference Include="Microsoft.AspNetCore.ApiAuthorization.IdentityServer" Version="7.0.0" />
<PackageReference Include="Microsoft.EntityFrameworkCore.SqlServer" Version="7.0.0" />
<PackageReference Include="Microsoft.EntityFrameworkCore.Tools" Version="7.0.0" />
</ItemGroup>
</Project>

我的文件夹结构:

enter image description here

  • 由于有两个 Program.cs 文件(客户端/服务器),因此请确保您已在要添加代码的应用程序中安装该软件包。

关于c# - 将 Azure Active Directory 身份验证添加到 Blazor WebAssembly 应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/75080952/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com