Blazor WASM - 尝试登录时出错:'this._settings.loginMode is undefined'



我创建了一个新的dotnet 6 blazor wasm应用程序,其中包含核心托管选项。Visual Studio 2022(v17.3.1(模板为此创建客户端、服务器和共享项目。

我已经更新了服务器项目的program.cs以使用Azure ADB2C,如下所示:

builder.Services.AddAuthentication(JwtBearerDefaults.AuthenticationScheme)
.AddMicrosoftIdentityWebApi(builder.Configuration.GetSection("AzureAdB2C"));

其appsettings.json包含以下内容:

"AzureAdB2C":{"实例":"https://mydomain.b2clogin.com/","ClientId":"serverprojclienthere";,"域":"mydomain.onmicrosoft.com";,"范围":"access_as_ user";,"SignUpSignInPolicyId":"B2C_ 1_ SignUpIn";}

在客户端项目中,程序.cs包含以下内容:

builder.Services.AddMsalAuthentication(options =>
{
builder.Configuration.Bind("AzureAdB2C", options.ProviderOptions.Authentication);
options.ProviderOptions.DefaultAccessTokenScopes.Add("https://mydomain.onmicrosoft.com/api/Api.ReadWrite");
});

其appsettings.json包含以下内容:

"AzureAdB2C": {
"Authority": "https://mydomain.b2clogin.com/mydomain.onmicrosoft.com/B2C_1_SignUpIn",
"ClientId": "clientprojclientidhere",
"ValidateAuthority": false
}

当我在本地运行它时,它运行得很好。网站加载并显示主屏幕;"有担保";页面,然后我被重定向到ADB2C。

我有一个devops管道,它将解决方案部署到Azure应用程序服务(linux(。如果我去网站,它会显示希望页面,但在导航到安全页面时,我会收到以下错误消息:

尝试让您登录时出错:"this_settings.loginMode为未定义的

我在浏览器的控制台窗口中没有看到任何错误。

有什么想法吗?

我设法从的博客文章中找到了答案

解决方案是将以下内容添加到客户端项目的csproj文件中:

<ItemGroup>
<TrimmerRootAssembly Include="Microsoft.Authentication.WebAssembly.Msal" />
</ItemGroup>

相关内容

  • 没有找到相关文章

最新更新