2015-10-05 69 views
0

我已经使用了以下示例iOS项目hereAzure AD B2C在Xamarin.Forms中指定多个身份提供商iOS应用程序

样品是非常直接的,我可以得到ADAL加载登录查看并请求用户认证,都好。

现在,我打算把它远一点通过显示具有多个身份提供者(G +,微博,FB,等)的登录图。

在Web应用程序中,我可以看到多个身份提供商时,我请求认证,因为我们可以像这样指定在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" /> 

我也有同样的重定向URI,我”已经在应用程序中使用(我也尝试使用重定向uri为本机客户端没有运气)

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

在此先感谢!

回答

2

我结束了由authContext.AcquireTokenAsync()方法指定“extraQueryParameters”这个解决我自己。 This post帮助了很多人提出了所需的解决方案。

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的门户网站已经设置的政策可以登录我的应用程序的多个身份提供商。万岁! :)

HTH ...

相关问题