解决UWP应用中的当前用户

时间:2016-12-20 11:20:19

标签: c# windows visual-studio uwp windows-10-universal

关于UWP的一些基本信息:

  • 功能已开启:互联网(客户端),用户帐户信息,网络摄像头
  • 无声明
  • 目标版本:Windows 10周年纪念版
  • 最低版本:Windows 10(10.0)
  • 构建平台:x64

以下是我检索用户信息的代码:

public async Task ResolveUserAsync()
{
    if (_currentUserInfo != null)
    {
        return;
    }
    var users = await User.FindAllAsync(UserType.LocalUser);
    var desiredProperties = new[]
    {
        KnownUserProperties.FirstName, KnownUserProperties.LastName, KnownUserProperties.ProviderName, KnownUserProperties.AccountName, KnownUserProperties.GuestHost,
        KnownUserProperties.PrincipalName, KnownUserProperties.DomainName, KnownUserProperties.SessionInitiationProtocolUri
    };
    _currentUserInfo = await users.FirstOrDefault().GetPropertiesAsync(desiredProperties);
    foreach (var prop in _currentUserInfo)
    {
        Debug.WriteLine($"{prop.Key}: {prop.Value}");
    }
}

调试控制台中的输出:

lastName:
firstName:
accountName: 
domainName: 
providerName: 
sipUri: 
principalName: 
guestHost: 

该应用程序在平板电脑上运行,该平板电脑是经典AD的成员,我无法弄清楚,为什么这些值是空的。该应用程序要求在用户界面中确认用户详细信息。

附注:如果我在使用AzureAD帐户登录的计算机上对此进行测试,则此代码将仅填入firstNamelastName

2 个答案:

答案 0 :(得分:0)

不完全确定此行为是否最近有所改变,但在过去,这取决于您的隐私设置作为用户(设置 - >隐私 - >帐户信息 - >顶部切换开关)

答案 1 :(得分:0)

我的应用中遇到了类似的问题。 在我打开应用清单中的“企业身份验证”功能后,至少填充了principalName属性