UWP:获取当前UserName以向用户提供权限

时间:2016-10-21 14:49:18

标签: c# uwp windows-10 account

对于我为客户开发的应用,我需要获取当前的用户详细信息。 然后我必须通过将这对夫妇“域名\登录”与包含所有授权用户的表进行比较来分配权限。

我重用了@Sergiu Cojocaru here给出的代码,我将其与官方样本(UserInfo)混合以获取更多详细信息:

IReadOnlyList<Windows.System.User> users = await Windows.System.User.FindAllAsync();

var current = users.Where(u => u.AuthenticationStatus == Windows.System.UserAuthenticationStatus.LocallyAuthenticated &&
                               u.Type == Windows.System.UserType.LocalUser).FirstOrDefault();

// user may have username
var data = await current.GetPropertyAsync(KnownUserProperties.AccountName);
string displayName = (string)data;

// or may be authenticated using hotmail/outlook
if (string.IsNullOrEmpty(displayName))
{
    string firstName = (string)await current.GetPropertyAsync(KnownUserProperties.FirstName);
    string lastName = (string)await current.GetPropertyAsync(KnownUserProperties.LastName);
    displayName = string.Format("{0} {1}", firstName, lastName);
}

但实际上我只从“ KnownUserProperties ”获得“ firstName ”和“ lastName ”。其他属性是空的:

  • providerName:null
  • accountName:null
  • guestHost:null
  • principalName:null
  • domainName:null
  • sipUri:null

=&GT;这是正常的吗?

问题是预期的一对“域名\登录”基于命令行“ whoami ”的结果,但不会产生相同的结果“ firstName ”和“ lastName ”。

=&GT;有没有办法在应用程序中获得相同的结果?

我指定使用hotmail帐户,但客户帐户必须基于Active Directory:我不知道这是否会改变任何内容......

1 个答案:

答案 0 :(得分:0)

获取有关域和域用户更改的信息

var data = await current.GetPropertyAsync(KnownUserProperties.AccountName);

var data = await current.GetPropertyAsync(KnownUserProperties.DomainName);

在我身边的结果是: ROM.EUROPE.TECHTEAM.COM \ scojocar