0

I'm developing a 8.1 app that needs to be compatible with windows 10.

I'm trying to get the Username of the user logged in, but it always returns a emtry string.

How do i get the username of a user in a windows 8.1 store app running on a windows 10 pc?

Windows.System.UserProfile.UserInformation.GetPrincipalNameAsync()

and

Windows.System.UserProfile.GetDomainNameAsync()

always return an empty string

Is there another way of getting the AD user name of a user?

4

1 回答 1

2

正如UserInformation类文档的Remarks部分中的描述:

重要Windows 10 或更高版本不支持UserInformation类 。请改用User类。

视窗 10:

为 Windows 8 编译的使用UserInformation类的应用在 Windows 10 上运行时不再返回用户信息。这是因为在 Windows 10 中,未经用户明确同意,应用无法访问用户信息,这与授予此权限的 Windows 8 不同默认。

如果你有一个使用UserInformation类的 Windows 8 应用,你应该将你的应用迁移到通用 Windows 平台 (UWP) 并改为访问User类。访问用户信息的通用 Windows 平台 (UWP) 应用现在需要声明新功能 uap:userAccountInformation,并调用新 API Windows.System.User.FindAllAsyncUser.GetPropertiesAsync来获取数据。

如果您在代码中使用UserInformation.NameAccessAllowed属性,您会发现它的值为false.

如果此属性为false,则GetDisplayNameAsyncGetDomainNameAsyncGetFirstNameAsyncGetLastNameAsync方法返回一个空字符串,而GetAccountPictureGetSessionInitiationProtocolUriAsync方法返回一个空值。

所以我认为要在 Windows 10 上获取用户名,您必须将您的应用程序迁移到通用 Windows 平台 (UWP) 并改为访问User类。有关详细信息,您可以查看 GitHub 上的用户信息示例

于 2016-03-10T09:59:35.123 回答