我创建了一个OnlineIdAuthenticator实例
contentText.count
但_authenticator = new OnlineIdAuthenticator();
和_authenticator.ApplicationId={00000000-0000-0000-0000-000000000000}
为_authenticator.AuthenticatedSafeCustomerId
。我们如何为UWP app获取正确的值?
答案 0 :(得分:0)
对于ApplicationId
,如OnlineIdAuthenticator.ApplicationId property的备注中所述:
Windows应用商店应用不需要此ID。
因此,对于UWP应用,默认情况下始终为00000000-0000-0000-0000-000000000000
。
对于AuthenticatedSafeCustomerId
,它表示为您的应用成功通过身份验证的用户的ID。
如果未成功为您的应用验证用户,则此属性值为空。
有关详细信息,请参阅OnlineIdAuthenticator.AuthenticatedSafeCustomerId property的备注。
因此,一旦用户成功通过了您的应用验证,您就可以获得正确的AuthenticatedSafeCustomerId
。
<强>更新强>
有关如何在javascript中处理用户身份验证请求,您可以参考OnlineIdAuthenticator class中的示例,以下是c#中的一个简单示例:
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}");
}
}