Xamarin.forms Xamarin使用错误的租户形成广告B2C MSAL样本?

Xamarin.forms Xamarin使用错误的租户形成广告B2C MSAL样本?,xamarin.forms,azure-ad-b2c,msal,Xamarin.forms,Azure Ad B2c,Msal,在我看来,Microsoft为新MSAL预览链接的示例(Xamarin Forms用于连接到AD B2C)似乎没有连接到正确的授权机构(租户)。这是真的吗?有其他人试过吗 以下是示例: 当运行他们的示例而不更改他们的连接信息(即连接到fabrikamb2c租户)时,它将在Chrome浏览器中弹出一个登录页面。如果我让它连接到另一个帐户,它就会调出我现有的Microsoft帐户——所以请看一个Microsoft广告租户。此外,如果我创建自己的广告B2C租户,并将该连接信息放入示例中,它仍会尝试根据

在我看来,Microsoft为新MSAL预览链接的示例(Xamarin Forms用于连接到AD B2C)似乎没有连接到正确的授权机构(租户)。这是真的吗?有其他人试过吗

以下是示例:

当运行他们的示例而不更改他们的连接信息(即连接到fabrikamb2c租户)时,它将在Chrome浏览器中弹出一个登录页面。如果我让它连接到另一个帐户,它就会调出我现有的Microsoft帐户——所以请看一个Microsoft广告租户。此外,如果我创建自己的广告B2C租户,并将该连接信息放入示例中,它仍会尝试根据Microsoft租户而不是我的新广告B2C租户对我进行身份验证

其他人是否在使用新的MSAL预览库和移动客户端登录时遇到问题

--下一条信息将于5月29日添加

我有三个不同的项目。首先,我直接使用Microsoft示例项目(active-directory-b2c-xamarin-native),连接到fabrikamb2c.onmicrosoft.com并使用提供的配置数据。其次,我接受了这个项目,并更新了我自己新创建的ad b2c租户的配置。第三,我有我自己的项目,它使用的是MSAL的早期版本,我更新了它以使用新版本

周五,我在运行示例项目时遇到了问题,无法按原样进行配置。但它现在正在运行,并为我创建了一个本地帐户。因为某种原因我没能做到。不管怎样,现在看起来不错

运行示例项目,但更新配置信息以针对新创建的ad b2c租户进行身份验证,我遇到了一些问题。当前,当我尝试创建一个新帐户时,它会给我以下消息:

如果我使用b2c租户中存在的帐户登录,我会得到以下信息:

但是在排除了异常之后,它已经登录,并向我提供了登录信息

最后,在我自己的项目中,我收到一条错误消息,听起来好像我是用户,正在针对不同的租户进行身份验证。我尝试登录的用户在租户中确实存在。我已经使用MSAL的早期版本与该用户一起登录,当我进入Azure的AD B2C中的租户时,我可以看到该用户。下面是错误消息--请查看详细信息

编辑:本节于2017年6月1日添加

下面是App.cs中包含我的配置的部分。还有几个地方我必须进行配置更改,但其余代码来自上面提到的Microsoft示例:

    public static string ClientID = "28a[edited this out]428";
    public static string PolicySignUpSignIn = "B2C_1_SignUpSignIn";
    public static string PolicyEditProfile = "B2C_1_EditProfile";
    public static string PolicyResetPassword = "B2C_1_PasswordReset";

    //public static string[] Scopes = { "https://fabrikamb2c.onmicrosoft.com/demoapi/demo.read" };
    public static string[] Scopes = { "Mail.read" };
    public static string ApiEndpoint = "https://[edited this out].azurewebsites.net/";

    public static string AuthorityBase = "https://login.microsoftonline.com/tfp/[edited this out].onmicrosoft.com/"; //this is my resource name in my ad b2c settings
    public static string Authority = $"{AuthorityBase}{PolicySignUpSignIn}";
    public static string AuthorityEditProfile = $"{AuthorityBase}{PolicyEditProfile}";
    public static string AuthorityPasswordReset = $"{AuthorityBase}{PolicyResetPassword}";

您是否可以添加屏幕截图来展示行为和注释,解释您希望看到的行为差异。@Saca。谢谢你看这个。我编辑了原始帖子,并添加了一些正在发生的事情的截图。我很乐意提供更多信息,但明天晚上之前我将无法提供。然后我会看看这篇文章。看起来你的两次尝试都没有设置权限或设置不正确。您能否确认它们是使用:
https://login.microsoftonline.com/tfp//
@Saca。我添加了另一个显示app.cs文件和配置更改的编辑。是的,在我之前的评论中,我运行它时没有权限URL的“tfp”部分。我曾经尝试过这样做,因为这是示例中的内容,但它不起作用,而且我在任何文档中都没有看到,所以我将其删除。正如您在代码中看到的,我再次将其放回原处,但当应用程序到达AcquireTokenAsync调用时,它就消失了。您可以看到它打开浏览器并尝试登录到login.microsoftonline.com,但随后它似乎崩溃并消失,并且没有引发异常。此外,这是在运行Nexus 7 API 25的Android仿真器中运行的。