MSAL会将请求重定向回应用程序,但获取令牌的任务始终未完成
我正在一个.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导航站,无授权禁止任何主体转载、抄袭、复制内容,亦不得私自架设镜像站点。一经侵权,本站将通过法律途径追责。