Blazor WASM Net 6 Preview 4 Azure AD - 尝试登录时出错:“无法读取未定义的属性‘toLowerCase’”

ahe*_*ick 25 c# blazor blazor-webassembly .net-6.0

我有一个运行 Net 6 Preview 4 的简单 Blazor WASM,我使用本指南进行设置:

https://learn.microsoft.com/en-us/aspnet/core/blazor/security/web assembly/hosted-with-azure-active-directory?view=aspnetcore-6.0

确切的代码与 Net 5.0 完美配合(使用相应的 Net 5.0 程序集)

但是,当我升级到 Net 6 时,我收到以下身份验证错误:

There was an error trying to log you in: 'Cannot read property 'toLowerCase' of undefined'
Run Code Online (Sandbox Code Playgroud)

我似乎也无法获得更多细节。这是在 Azure 应用服务自包含发布上发布的。

在此输入图像描述

代码可以在这里找到: https ://github.com/aherrick/BlazorWASM.Net6Prev4.AzureAD

小智 68

此处讨论了该问题的解决方法: https ://github.com/dotnet/aspnetcore/issues/33312 。

简而言之,该问题是由装配修剪引起的。解决方法是Microsoft.Authentication.WebAssembly.Msal通过将其包含在客户端项目文件中来排除修剪:

  <ItemGroup>
    <TrimmerRootAssembly Include="Microsoft.Authentication.WebAssembly.Msal" />
  </ItemGroup>
Run Code Online (Sandbox Code Playgroud)

  • 如果添加后遇到问题,请尝试以下操作:从解决方案中删除所有 bin 和 obj 文件夹,删除服务器上目标文件夹中的所有文件,然后再次发布。 (4认同)
  • 在 .csproj 文件中添加的位置确实很重要。添加到最后不起作用。将其直接放置在 PackageReference 项组之后似乎可行。 (3认同)
  • 对于任何收到“无法在资源的‘完整性’属性中找到有效摘要”的人,请参阅上面关于删除 bin 和 obj 的 @130nk3r5 评论 (3认同)
  • 此问题在部署到 Blob Storae 静态网站的 Blazor WASM 中也很常见。TrimmerRootAssembly 的解决方案相同。 (3认同)