我一直在用头撞墙试图找出为什么在等待调用 AcquireTokenInteractive 的结果后的下一条语句没有执行。我把它包裹在一个 try/catch 中,没有例外。用于身份验证的 webview 被彻底关闭,它确实返回到我的登录页面。但是,正如我所说,之后似乎没有代码执行。这是我正在编写的 .NET Maui 应用程序,平台是 Android。
这里是没有 try/catch 的代码片段:
async Task Login()
{
var publicClientApplication = PublicClientApplicationBuilder
.Create(AppConst.ClientID)
.WithRedirectUri($"msal{AppConst.RedirectGUID}://auth")
.WithAuthority(AzureCloudInstance.AzurePublic, AppConst.TenantID)
.WithParentActivityOrWindow(() => Platform.CurrentActivity)
.Build();
var result = await publicClientApplication.AcquireTokenInteractive(AppConst.LoginScopes).ExecuteAsync();
Console.WriteLine(result.AccessToken+", acct: "+result.Account); //NEVER gets here
}
我什至创建了一个每秒触发一次的计时器来检查进度。我试图将结果存储在一个全局变量中并让计时器线程读取它。计时器继续执行,但变量保持为空。如果有人能对此有所了解,我将不胜感激。非常感谢!