移动应用程序 GetIdentityAsync 没有价值

Mobile App GetIdentityAsync no value

我从 Azure 服务移动应用程序 API 自定义控制器中获得此代码。结果总是相同的“1:1”。我测试了所有身份提供商,google、facebook、twitter 和 Microsoft 帐户,AD 除外。我认为问题是对 GetIdentityAsync 的调用。谁能帮我?谢谢

    [HttpGet]
    public async Task<string> GetIdentityInfo()
    {
        var user = (MobileAppUser)this.User;            

        string str = "";
        string Provider = "YES", UserId = "NO";
        try
        {
            if (user != null)
            {
                Provider = "1"; UserId = "1";
                var microsoftCredentials = await user.GetIdentityAsync<MicrosoftAccountCredentials>();
                if (microsoftCredentials != null && microsoftCredentials.Claims != null)
                {
                    Provider = "MICROSOFT";
                    UserId = microsoftCredentials.UserId;
                }

                Provider = "2"; UserId = "2";
                var googleCredentials = await user.GetIdentityAsync<GoogleCredentials>();
                if (googleCredentials != null && googleCredentials.Claims != null)
                {
                    Provider = "GOOGLE";
                    UserId = googleCredentials.UserId;
                }

                Provider = "3"; UserId = "3";
                var facebookCredentials = await user.GetIdentityAsync<FacebookCredentials>();
                if (facebookCredentials != null && facebookCredentials.Claims != null)
                {
                    Provider = "FACEBOOK";
                    UserId = facebookCredentials.UserId;
                }

                Provider = "4"; UserId = "4";
                var twitterCredentials = await user.GetIdentityAsync<TwitterCredentials>();
                if (twitterCredentials != null && twitterCredentials.Claims != null)
                {
                    Provider = "TWITTER";
                    UserId = twitterCredentials.UserId;
                }
            }
            else
            {
                Provider = "NONE"; UserId = "NULL";
            }
        }
        catch (Exception ex)
        {
            str = "ERROR";
        }
        finally
        {
            str = Provider + ":" + UserId;
        }

        return str;
    }

我们得到了 Microsoft 支持工程师 Adrian Fernandez Garcia 的支持,并发送了一个运行良好的示例。唯一的区别是 EMA_RuntimeUrl 必须在应用程序属性中的 Azure 门户中的移动应用程序中手动创建,并分配给网关地址。

实际上这个值是自动创建的,不需要手动创建。

这给了我们错误 URIFormat NULL value

现在一切正常。

感谢微软的支持