如何获得正确的ApplicationId和AuthenticatedSafeCustomerId

时间:2016-04-19 10:19:53

标签: authentication oauth win-universal-app windows-10

我创建了一个OnlineIdAuthenticator实例

contentText.count

_authenticator = new OnlineIdAuthenticator(); _authenticator.ApplicationId={00000000-0000-0000-0000-000000000000}_authenticator.AuthenticatedSafeCustomerId。我们如何为UWP app获取正确的值?

1 个答案:

答案 0 :(得分:0)

对于ApplicationId,如OnlineIdAuthenticator.ApplicationId property备注中所述:

  

Windows应用商店应用不需要此ID。

因此,对于UWP应用,默认情况下始终为00000000-0000-0000-0000-000000000000

对于AuthenticatedSafeCustomerId,它表示为您的应用成功通过身份验证的用户的ID。

  

如果未成功为您的应用验证用户,则此属性值为空。

有关详细信息,请参阅OnlineIdAuthenticator.AuthenticatedSafeCustomerId property备注

因此,一旦用户成功通过了您的应用验证,您就可以获得正确的AuthenticatedSafeCustomerId

<强>更新

有关如何在中处理用户身份验证请求,您可以参考OnlineIdAuthenticator class中的示例,以下是中的一个简单示例:

public async Task SignIn()
{
    var authenticator = new Windows.Security.Authentication.OnlineId.OnlineIdAuthenticator();
    var serviceTicketRequest = new Windows.Security.Authentication.OnlineId.OnlineIdServiceTicketRequest("wl.basic", "DELEGATION");

    System.Diagnostics.Debug.WriteLine("Signing in...");
    try
    {
        var authResult = await authenticator.AuthenticateUserAsync(serviceTicketRequest);

        if ((authResult.Tickets.Count == 1) && (authResult.Tickets[0].ErrorCode == 0))
        {
            System.Diagnostics.Debug.WriteLine("Authorization succeeded.");

            var accessToken = authResult.Tickets[0];

            System.Diagnostics.Debug.WriteLine(accessToken.Value);

            System.Diagnostics.Debug.WriteLine(authenticator.AuthenticatedSafeCustomerId);
        }
        else
        {
            System.Diagnostics.Debug.WriteLine("Autorization failed.");
        }
    }
    catch (Exception ex)
    {
        System.Diagnostics.Debug.WriteLine($"Autorization failed: {ex.Message}");
    }
}