System.User的用户名

时间:2015-10-23 18:18:49

标签: windows-store-apps windows-10

今天我想通过名字在我的应用中问候用户,但我没有设法得到它。

我找到了System.User,但由于缺少一些例子,我无法获得所需的信息。我认为不可能让当前用户(id)致电User.GetFromId()

你能引导我走向正确的方向吗?我走错了路吗?

1 个答案:

答案 0 :(得分:2)

好的,首先,访问用户的个人信息是您必须要求的权限,因此在商店应用的Package.appxmanifest中,您需要在功能中启用User Account Information功能标签。

接下来,您将要使用Windows.System.User类,而不是System.User(System.User不适用于Windows商店应用程序,鉴于您提供的标签,您似乎正在讨论这些应用程序你的问题)

第三,您需要这样的个人信息。

IReadOnlyList<User> users = await User.FindAllAsync(UserType.LocalUser, UserAuthenticationStatus.LocallyAuthenticated);
User user = users.FirstOrDefault();
if (user != null)
{
   String[] desiredProperties = new String[]
   {
      KnownUserProperties.FirstName,
      KnownUserProperties.LastName,
      KnownUserProperties.ProviderName,
      KnownUserProperties.AccountName,
      KnownUserProperties.GuestHost,
      KnownUserProperties.PrincipalName,
      KnownUserProperties.DomainName,
      KnownUserProperties.SessionInitiationProtocolUri,
   };

   IPropertySet values = await user.GetPropertiesAsync(desiredProperties);
   foreach (String property in desiredProperties)
   {
      string result;
      result = property + ": " + values[property] + "\n";
      System.Diagnostics.Debug.WriteLine(result);
   }
}

当您调用GetPropertiesAsync时,您的用户将从系统获得一个权限提示,询问他们是否要授予您访问权限的权限。如果他们回答“否”,您将获得一个空的用户对象(但是如果他们再次使用该应用程序,您仍然可以使用唯一的令牌来区分该用户。)

如果他们回答是,您将能够访问以下属性以及其他各种属性。

有关更多示例,请参阅Microsoft提供的UserInfo Sample