Windows 8.1商店应用中Windows 10上的AD用户名

时间:2016-03-09 16:10:51

标签: windows-runtime windows-10-universal windows-8.1-universal

我正在开发一个需要与Windows 10兼容的8.1应用程序。

我正在尝试获取用户登录的用户名,但它总是返回一个emtry字符串。

如何在Windows 10 PC上运行的Windows 8.1商店应用中获取用户的用户名?

Windows.System.UserProfile.UserInformation.GetPrincipalNameAsync()

Windows.System.UserProfile.GetDomainNameAsync()

始终返回空字符串

是否有另一种获取用户AD用户名的方法?

1 个答案:

答案 0 :(得分:2)

正如UserInformation类文档的备注部分中的说明:

  

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

     

Windows 10:

     

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

     

如果您的Windows 8应用程序使用 UserInformation 类,则应将应用程序迁移到通用Windows平台(UWP)并访问User类。现在,用于访问用户信息的通用Windows平台(UWP)应用程序将声明一个新功能,即uap:userAccountInformation,并调用新的API, Windows.System.User.FindAllAsync User.GetPropertiesAsync ,以获取数据。

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

  

如果此属性为 false ,则 GetDisplayNameAsync GetDomainNameAsync {{3} GetFirstNameAsync 方法返回一个空字符串,而 GetLastNameAsync GetAccountPicture 方法返回空值。

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