Azure AD B2C在Xamarin.Forms iOS应用程序中指定多个标识提供程序

我已经使用了以下示例iOS项目。

这个示例非常简单,我可以通过ADAL来加载login视图并请求用户身份validation,这一切都很好。

现在,我打算通过显示具有多个身份提供者(G +,Twitter,Fb等)的login视图进一步说明问题。

在Web应用程序中,当我请求身份validation时,可以看到多个身份提供者,因为我们可以在web.config中指定策略,如下所示:

<add key="ida:Tenant" value="sometenant.onmicrosoft.com" /> <add key="ida:ClientId" value="clientidguid" /> <add key="ida:ClientSecret" value="clientsecret" /> <add key="ida:AadInstance" value="https://login.microsoftonline.com/{0}{1}{2}" /> <add key="ida:RedirectUri" value="https://localhost:44321/" /> <add key="ida:SignUpPolicyId" value="b2c_1_xyz_policy" /> <add key="ida:SignInPolicyId" value="b2c_1_xyz_sign_in" /> <add key="ida:UserProfilePolicyId" value="b2c_1_xyz_editing" /> 

我有相同的redirecturi,我已经在应用程序中使用(我也尝试使用redirecturi为本机客户端没有运气)

我想知道,如何在Xamarin表单项目中指定策略,以便我可以在iOS应用程序中看到用户login的多个身份提供者?

提前致谢!

我最终通过在authContext.AcquireTokenAsync()方法中指定“extraQueryParameters”来解决这个问题。 这篇文章帮助了很多人提出了所需的解决scheme。

 var authResult = await authContext.AcquireTokenAsync(resource, clientId, new Uri(returnUri), new PlatformParameters(UIApplication.SharedApplication.KeyWindow.RootViewController), UserIdentifier.AnyUser, "&scope=openid&p=B2C_1_xyz_sign_in"); 

“范围”是必需的参数,“p”参数指定要使用的策略。

根据我在Azure门户中设置的策略,现在我的应用程序中有多个身份提供者可供login。 万岁! 🙂

HTH …