MSAL会将请求重定向回应用程序,但获取令牌的任务始终未完成

移动开发 2026-07-12

我正在一个.NET MAUI Blazor混合应用中使用MSAL(net10.0-android,.NET SDK 10.0.100,Android API 36.0)。

我想让用户进行交互式登录。我要调用的代码是一个内部库,基本上就是对这个调用的封装:

await publicClientApplication.AcquireTokenInteractive(".default");

我的IPublicClientApplication已经正确配置了Azure客户端ID,以及父Activity,我还添加了必需的BrowserTabActivity,以便能够将登录重定向回我的应用。

当我登录时,我会被重定向回应用,但似乎 AcquireTokenInteractiveAsync 任务永远不会完成。至少这是我目前最好的推测,因为我在Android上似乎也无法让断点工作,但在等待该Task之后我没有看到任何后续代码的执行(日志输出、异常抛出等)。

我怀疑这是Android的一个特定问题,因为在Windows上这一流程按预期工作。

解决方案

(当然,我在发帖后就立刻发现了……)

我在MainActivity中缺少这段覆盖方法:

using Microsoft.Identity.Client;

    protected override void OnActivityResult(int requestCode, Result resultCode, Intent? data)
    {
        base.OnActivityResult(requestCode, resultCode, data);
        AuthenticationContinuationHelper.SetAuthenticationContinuationEventArgs(requestCode, resultCode, data);
    }
站内所有文章版权归属LeftHeroAI导航站,无授权禁止任何主体转载、抄袭、复制内容,亦不得私自架设镜像站点。一经侵权,本站将通过法律途径追责。

相关文章