首页 > 解决方案 > MSAL 不运行 WebView 进行登录

问题描述

我在 Xamarin.Forms 中使用 MSAL 对 B2C 中的用户进行身份验证。MSAL 4.0.0 和 Xamarin.Forms 3.2.0.871581 的版本。我注意到我的 MSAL 没有为登录用户运行 WebView。我尝试了几种解决方案,但问题仍然存在:-(如果有人遇到这样的问题?提前致谢

标签: xamarin.formsazure-ad-b2cmsal

解决方案


试试这个使用 MSAL v4 的 B2C Xamarin 示例。您可以使用自己的 B2C 用户旅程值淹没 B2CConstants.cs中的值,并且该示例应该可以正常工作。

请注意,对于 Android,您需要按照示例中的操作设置 Activity .WithParentActivityOrWindow(ParentActivityOrWindow)因此一旦发生交互,令牌就会返回。基本上是这样的:

var authResult = AcquireTokenInteractive(scopes)
 .WithParentActivityOrWindow(parentActivity)
 .ExecuteAsync();

此外,在 Android 上,您将需要覆盖 的OnActivityResult方法Activity,如示例中所示

protected override void OnActivityResult(int requestCode, Result resultCode, Intent data)
{
     base.OnActivityResult(requestCode, resultCode, data);
     AuthenticationContinuationHelper.SetAuthenticationContinuationEventArgs(requestCode, resultCode, data);
}

推荐阅读