Xamarin.forms 无法使用正确的设置访问AzureAD中的公司租户

Xamarin.forms 无法使用正确的设置访问AzureAD中的公司租户,xamarin.forms,azure-active-directory,azure-ad-b2c,Xamarin.forms,Azure Active Directory,Azure Ad B2c,我在AzureAD有一个付费帐户 使用带有以下代码的Xamarin表单: 我可以显示登录页面并输入我的电子邮件地址 问题: 当我在添加电子邮件地址后单击“下一步”按钮时,我被带到了这个页面:将您带到组织的登录页面,但活动指示器保持在无限循环中。。。。。。没有返回任何内容。 更新 我测试了两部Droid手机 安卓8.0版手机,很快就能使用。后来我在电话中删除了它,并从VS2017重新部署到电话,以确保工作正常。但在重新部署后,它现在不起作用了。现在使用安卓4.3版的B_手机,此显示网页不可用。为什

我在AzureAD有一个付费帐户
使用带有以下代码的Xamarin表单:
我可以显示登录页面并输入我的电子邮件地址

问题
当我在添加电子邮件地址后单击“下一步”按钮时,我被带到了这个页面:将您带到组织的登录页面,但活动指示器保持在无限循环中。。。。。。没有返回任何内容。

更新

我测试了两部Droid手机
安卓8.0版手机,很快就能使用。后来我在电话中删除了它,并从VS2017重新部署到电话,以确保工作正常。但在重新部署后,它现在不起作用了。现在使用安卓4.3版的B_手机,此显示网页不可用。为什么B_电话不工作

为什么会这样

public static string ApplicationID = "xxxx-xxxx-xxxx-xxxx-xxxx";
public static string tenanturl = "https://login.microsoftonline.com/xxxx-xxxx-xxxx-xxxx-xxxxx";
public static string ReturnUri = "http://appname";

public static string GraphResourceUri = "https://graph.microsoft.com";
public static AuthenticationResult AuthenticationResult = null;



private async void Login_OnClicked(object sender, EventArgs e)
 {
    try
    {
         var data = await DependencyService.Get<IAuthenticator>()
                      .Authenticate(App.tenanturl, App.GraphResourceUri, App.ApplicationID, App.ReturnUri);

         if (data != null)
         {
            App.AuthenticationResult = data;
            NavigateTopage(data);
          }

    }
  catch(Exception)
  { }
 }




 class Authenticator : IAuthenticator
    {
        public async Task<AuthenticationResult> Authenticate(string tenantUrl, string graphResourceUri, string ApplicationID, string returnUri)
        {
            try
            {
                var authContext = new AuthenticationContext(tenantUrl);

                if (authContext.TokenCache.ReadItems().Any())


                authContext = new AuthenticationContext(authContext.TokenCache.ReadItems().FirstOrDefault().Authority);

                var authResult = await authContext.AcquireTokenAsync(graphResourceUri, ApplicationID, new Uri(returnUri), new PlatformParameters((Activity)Forms.Context));

                return authResult;
            }
            catch(Exception)
            {
                return null;
            }
        }

    }
公共静态字符串ApplicationID=“xxxx xxxx xxxx xxxx xxxx”; 公共静态字符串租户=”https://login.microsoftonline.com/xxxx-xxxx-xxxx-xxxx-xxxxx"; 公共静态字符串ReturnUri=”http://appname"; 公共静态字符串GraphResourceUri=”https://graph.microsoft.com"; 公共静态AuthenticationResult AuthenticationResult=null; 私有异步无效登录\u onclick(对象发送方,事件参数e) { 尝试 { var data=wait DependencyService.Get() .验证(App.tenatur、App.GraphResourceUri、App.ApplicationID、App.ReturnUri); 如果(数据!=null) { App.AuthenticationResult=数据; 导航页面(数据); } } 捕获(例外) { } } 类验证器:IAAuthenticator { 公共异步任务身份验证(字符串tenantUrl、字符串graphResourceUri、字符串ApplicationID、字符串returnUri) { 尝试 { var authContext=新的AuthenticationContext(租户); if(authContext.TokenCache.ReadItems().Any()) authContext=新的AuthenticationContext(authContext.TokenCache.ReadItems().FirstOrDefault().Authority); var authResult=await authContext.AcquireTokenAsync(graphResourceUri、ApplicationID、新Uri(returnUri)、新PlatformParameters((Activity)Forms.Context)); 返回结果; } 捕获(例外) { 返回null; } } } 请帮忙。你的帮助对我很重要


谢谢

请确保您的回复URL是您的主主页URL,并且配置中的重定向URI与应用注册中的URL匹配。还要验证配置中的客户端ID是否与应用程序中的应用程序ID匹配。您可以添加else语句,以确保即使用户未经身份验证也可以导航到某个位置

你有什么例外吗?没有例外。。。活动指示器一直在循环。。没有返回结果。以上设置是否正确?为什么会这样?如何解决此问题?如果您正在循环,则很可能身份验证中存在错误。在catch(Exception ex){return null;}中设置一个断点,看看ex有什么。现在我得到的网页不可用。我需要做什么?Chrome浏览器版本是否与此身份验证有关?Droid API级别重要吗?您的凭证设置是否正确?Azure广告中的权限和权限?