除FirstName外,所有属性都返回空字符串。
我在代码中找不到任何错误。
我尝试了很多次但仍然得到空字符串。返回值的唯一属性是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 :(得分:1)
需要此userAccountInformation功能才能访问Windows.System.UserProfile命名空间中的某些API。当您在应用程序包清单中声明它时,它必须包含uap命名空间,如下所示:
style.css
对于本地用户,只能通过<Capabilities>
<uap:Capability Name="userAccountInformation" />
</Capabilities>
方法获得DisplayName
属性。
对于域用户,以下属性等于实际值: