2016-07-07 78 views
0

所有屬性均返回空字符串,但名字除外。UWP中的用戶屬性

我在代碼中找不到任何錯誤。

我嘗試了很多次,但仍然得到空字符串。唯一返回值的屬性是FirstName。

 public static async void GetCurrenntLocalUsers 
       (ObservableCollection<UserInformation> informations) 
     { 
      IReadOnlyList<User> users = await 
         Windows.System.User.FindAllAsync(UserType.LocalUser, 
         UserAuthenticationStatus.LocallyAuthenticated); 

      foreach (var user in users) 
      { 

       IRandomAccessStreamReference img = await 
        user.GetPictureAsync(UserPictureSize.Size64x64); 

       var stream = await img.OpenReadAsync(); 

       BitmapImage image=new BitmapImage(); 

       image.SetSource(stream); 

       var userprop = await 
        user.GetPropertiesAsync(await getproperties()); 

       string ff = userprop[KnownUserProperties.AccountName].ToString(); //Empty String 

       informations.Add(new UserInformation() 
       { 
        Name = userprop[KnownUserProperties.FirstName].ToString(), 
        DomainName = userprop[KnownUserProperties.DomainName].ToString(), //Empty String 
        UserImage = image 
       }); 

      } 
     } 

而且是GetProperties中

private static async Task<IReadOnlyList<string>> getproperties() 
    { 
     var prop=new List<String>() 
     { 
       KnownUserProperties.FirstName, 
       KnownUserProperties.DomainName, 
       KnownUserProperties.AccountName 
     }; 
     return prop; 
    } 
+0

沒有看到你設置的屬性,我無法給你一個答案。 –

+0

其實我想要綁定文本塊,我也給了packge.manifst文件的權限也訪問信息 –

+1

好吧,那麼我再說一遍。沒有看到所有相關的代碼,我無法幫助你。 –

回答

1

參考App Capability

這userAccountInformation能力時需在Windows.System.UserProfile命名一些API。它必須包括UAP命名空間,如下圖所示,當你在你的應用程序的軟件包清單聲明它:

<Capabilities> 
    <uap:Capability Name="userAccountInformation" /> 
    </Capabilities> 

對於本地用戶,只有DisplayName屬性將通過User.GetPropertiesAsync()方法來實現。

對於域用戶,以下屬性等於實際值:

  • 顯示名稱:富蘭克林陳
  • 域名:xxxx.domain.COM \ user_alias
  • 姓:富蘭克林
  • 名字:陳
  • SessionInitiationProtocolUri:sip://[email protected]
相關問題