У меня есть Azure AD B2 C серверное приложение Blazor, которое отлично работает, включая SignIn / Singup и Profile Edit. Соответствующий код в Startup.cs выглядит следующим образом:
services.AddAuthentication(AzureADB2CDefaults.OpenIdScheme)
.AddAzureADB2C(options => Configuration.Bind("AzureAdB2C", options));
Однако, когда я представляю приведенный ниже код для перехвата события OnTokenValidated, OnTokenValidated срабатывает, когда я нажимаю на SignIn; однако после входа в систему, когда я пытаюсь отредактировать профиль, я вижу, что OnTokenValidated все еще срабатывает, и страница пытается go перейти к / AzureADB2c / Account / EditProfile, но сразу возвращается на домашнюю страницу, не переходя на страницу редактирования профиля. Я подтвердил, что если я использую любой OpenIdEvent, даже без какого-либо тела, текущий пользователь не может редактировать профиль. Вот окончательный код в ConfigureServices, который имеет эту проблему:
services.AddAuthentication(AzureADB2CDefaults.OpenIdScheme)
.AddAzureADB2C(options => Configuration.Bind("AzureAdB2C", options));
//The code below causes Profile Editing to stop working. When logged in user clicks on
//Edit Profile link, there is a temporary redirect, but the user is sent back to home page, instead of Edit Profile page on Azure B2c site
services.Configure<OpenIdConnectOptions>(AzureADB2CDefaults.OpenIdScheme, options =>
{
options.Events = new OpenIdConnectEvents
{
OnTokenValidated = async ctx =>
{
}
};
});