正确的 B2C ADAL 包 - Xamarin PCL 项目

Correct ADAL package for B2C - Xamarin PCL project

我已经阅读了几篇关于将 Azure Active Directory 登录功能添加到 Xamarin PCL 项目(例如 https://blog.xamarin.com/put-adal-xamarin-forms/)的文章,但我仍然无法使其工作。

有人可以阐明用于 Azure B2C AD(对于 Xamarin PCL 项目)的正确 ADAL 包吗?

是吗:

Microsoft.IdentityModel.Clients.ActiveDirectory

Microsoft.Experimental.IdentityModel.Clients.ActiveDirectory

谢谢!

Microsoft.Experimental.IdentityModel.Clients.ActiveDirectory 是适合 B2C 的包,但 Xamarin 场景不是此预览版的目标。我们将在以后刷新预览时添加新平台。

我会注意@vibronet 所说的内容,但话虽如此(并让您继续),这是我在您提到的示例项目中使用的所有参考的屏幕截图:


我使用的 ADAL 包版本是:3.5.207081303-alpha(预发行版),nuget 没有将它添加到我的 PCL 库中,我最终通过 'Add Reference' 显式添加了引用并浏览到包裹,也许你也可以试试。

最后,我必须添加 here

中指定的 extraQueryParameters

告诉我你过得怎么样...

感谢@Kaush 和@vibronet 为我指明了正确的方向,节省了大量时间。

对于任何想要将 B2C 登录和注册流程添加到 Xamarin Forms 项目的人 - 我能够混合 Android 的解决方案如下:

  1. 随时将对 Microsoft.IdentityModel.Clients.ActiveDirectory 的任何引用更改为 Microsoft.Experimental.IdentityModel.Clients.ActiveDirectory

  2. 将 Microsoft.Experimental.IdentityModel.Clients.ActiveDirectory 包添加到所有项目。如果 PCL 项目中出现兼容性错误,则使用 'Add Reference' 手动添加包引用,如@Kaush 所述。我选择了 'portable-net45+win+wpa81' 库。

  3. 按照此处所述实施流程:https://blog.xamarin.com/put-adal-xamarin-forms/

  4. 将对'AcquireTokenAsync'的调用更改为:

var result = await authContext.AcquireTokenAsync(new string[] { clientId }, null, clientId, new Uri(returnUri), platformParams, "{Policy_Name_Here}");

备注:

  1. 确保权限格式为'https://login.microsoftonline.com/{Tenant_Name_Here}.onmicrosoft.com'

  2. 这是基于 alpha 代码的实验,因此预计它会在不久的将来发生变化/中断/发展。