使用Azure AD B2C的Xamarin.Forms应用程序仅显示Microsoft登录

使用Azure AD B2C的Xamarin.Forms应用程序仅显示Microsoft登录,xamarin.forms,azure-ad-b2c,Xamarin.forms,Azure Ad B2c,我正在开发一个Xamarin应用程序,它使用Azure广告B2C,我遇到了一些问题 尽管我已经将LinkedIn、Google、Microsoft、Facebook和Twitter设置为身份提供者,但我得到的唯一提示是我的Microsoft帐户。当我的应用程序调用登录时,我看不到任何其他按钮。适用于Microsoft登录,无法访问任何其他登录 以下是我对AcquireTokenAsync的调用: var result = await AuthenticationClient.AcquireTok

我正在开发一个Xamarin应用程序,它使用Azure广告B2C,我遇到了一些问题

尽管我已经将LinkedIn、Google、Microsoft、Facebook和Twitter设置为身份提供者,但我得到的唯一提示是我的Microsoft帐户。当我的应用程序调用登录时,我看不到任何其他按钮。适用于Microsoft登录,无法访问任何其他登录

以下是我对AcquireTokenAsync的调用:

var result = await AuthenticationClient.AcquireTokenAsync(Constants.Scopes, 
    GetUserByPolicy(App.AuthenticationClient.Users, Constants.PolicySignUpSignIn), 
    Evaluator.App.UiParent);
在门户中的Azure AD B2C设置中,我将Web App/Web API设置为否,将本机客户端设置为是。自定义重定向URI为“masl{myappid}://auth”。
钥匙下面写着“没有结果”。 在API访问(预览)下,它说有2个作用域(选中openid和脱机访问的复选框)。 在“已发布范围(预览)”下,它表示未包含Web应用程序/Web API


在身份提供者下,我配置了LinkedIn、Google、Microsoft、Facebook和Twitter。

配置您的策略身份提供者(IDP)


事实证明,更改为使用AcquireTokenAsync的其他重载之一会导致不同的行为

var result = //await AuthenticationClient.AcquireTokenAsync(Constants.Scopes, GetUserByPolicy(App.AuthenticationClient.Users, Constants.PolicySignUpSignIn), Evaluator.App.UiParent);
    await App.AuthenticationClient.AcquireTokenAsync(Constants.Scopes, GetUserByPolicy(App.AuthenticationClient.Users, Constants.PolicySignUpSignIn), UIBehavior.SelectAccount, string.Empty, null, Constants.Authority, App.UiParent);
最初的调用导致调用Azure广告服务,而此处显示的调用导致调用Azure B2C服务。我在任何地方都没有看到文档记录,我希望所有重载都有更好的文档来描述它们之间行为的相关性和区别


现在我看到我配置的所有提供者都显示为选项!但是,有一个新问题(尽管它们似乎配置正确),我不再在
result.User.DisplayableId
字段中返回电子邮件地址。尽管如此,我最初的问题还是得到了回答。

这是什么身份验证库?Xamarin.Auth?@ethane我相信他们正在使用MSAL.NET。不是这样。我已经为我在op.Bummer中列出的每一个提供者做了这些。我是这么想的,但不是100%确定@MarkSnyder