[英]Blazor WASM - There was an error trying to log you in: '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”:“serverprojclientidhere”,“域”:“mydomain.onmicrosoft.com”,“范圍”:“access_as_user”, “SignUpSignInPolicyId”:“B2C_1_SignUpIn”}
在客戶端項目中,program.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
}
當我在本地運行它時,它工作正常。 該網站加載並顯示主屏幕,如果我 select 是“安全”頁面,那么我將被重定向到 ADB2C。
我有一個 devops 管道,將解決方案部署到 Azure App Service (linux)。 如果我 go 到該站點,它會顯示希望頁面,但在導航到安全頁面時,我會收到以下錯誤消息:
嘗試登錄時出錯:'this._settings.loginMode is undefined'
我在瀏覽器的控制台 window 中沒有看到任何錯誤。
有任何想法嗎?
我設法從這篇博文中找到了答案
解決方案是將以下內容添加到客戶端項目的 csproj 文件中:
<ItemGroup>
<TrimmerRootAssembly Include="Microsoft.Authentication.WebAssembly.Msal" />
</ItemGroup>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.