2016-04-22 53 views
0

我想获取当前登录用户的username或用户id在UWP应用程序中。以下是我正在使用的代码,但它返回null获取UWP应用程序中当前登录用户的用户名/用户ID

var current = users.Where(p => p.AuthenticationStatus == UserAuthenticationStatus.LocallyAuthenticated && p.Type == UserType.LocalUser).FirstOrDefault(); 
var data = await current.GetPropertyAsync(KnownUserProperties.AccountName); 
Username = (string)data; 
+0

我不知道哪种类型是变量** current **。但你是否确定它拥有AccountName属性?为了清楚起见,尽量暂时避免** var **。或者当你尝试写**当前**。智能感知提供给你什么,是否有这样的属性? –

+0

其类型为Windows.System.User,并且它具有AccoutName属性,但返回null。 –

回答

0
var users = await User.FindAllAsync(UserType.LocalUser); 
var user = (string) await users.FirstOrDefault().GetPropertyAsync(KnownUserProperties.AccountName); 
var domain = ""; 
var host = ""; 

if (string.IsNullOrEmpty(user)) 
{ 
var domainWithUser = (string) await users.FirstOrDefault().GetPropertyAsync(KnownUserProperties.DomainName); 
domain = domainWithUser.Split('\\')[0]; 
user = domainWithUser.Split('\\')[1]; 
} 

这帮助了我。参考http://codegur.com/33736983/get-environment-variables-in-net-core-uwp