Мое приложение использует AppShell и при запуске он обращается к методу InitializeAsync() моего StartupPage.cs. Первое, что я делаю в InitializeAsync(), — это делаю следующий вызов:
Код: Выделить всё
var authenticatedUser = await _authService.IsAuthenticated();. Этот метод выглядит следующим образом:
public async Task IsAuthenticated()
{
await PublicClientSingleton.Instance.AcquireTokenSilentAsync();
var claims = PublicClientSingleton.Instance.MSALClientHelper.AuthResult.ClaimsPrincipal.Claims; // This throws that error!
...
}
Кстати, вот как выглядит мой файл MainActivity.cs под Android< /code> в папке «Платформы»:
Код: Выделить всё
protected override void OnCreate(Bundle savedInstanceState)
{
base.OnCreate(savedInstanceState);
// configure platform specific params
PlatformConfig.Instance.RedirectUri = $"msal{PublicClientSingleton.Instance.MSALClientHelper.AzureADB2CConfig.ClientId}://auth";
PlatformConfig.Instance.ParentWindow = this;
// Initialize MSAL and platformConfig is set
_ = Task.Run(async () => await PublicClientSingleton.Instance.MSALClientHelper.InitializePublicClientAppAsync()).Result;
}
Подробнее здесь: https://stackoverflow.com/questions/791 ... rowser-pop