Если вы не добавили Информацию об учетной записи пользователя< /strong> вашего приложения в Package.appxmanifest, у вас не будет разрешения на доступ к информации об учетной записи пользователя.
![введите здесь описание изображения](https://i.stack.imgur.com/Wi6QY.png)
По другим причинам, если вы аутентифицировались с помощью hotmail, вам нужны KnownUserProperties.FirstName
и KnownUserProperties.LastName
, чтобы получить имя вашей учетной записи.
private async void GetUser()
{
IReadOnlyList<User> users = await User.FindAllAsync();
var current = users.Where(p => p.AuthenticationStatus == UserAuthenticationStatus.LocallyAuthenticated &&
p.Type == UserType.LocalUser).FirstOrDefault();
// user may have username
var data = await current.GetPropertyAsync(KnownUserProperties.AccountName);
string displayName = (string)data;
// authinticated using hotmail
if (String.IsNullOrEmpty(displayName))
{
string a = (string)await current.GetPropertyAsync(KnownUserProperties.FirstName);
string b = (string)await current.GetPropertyAsync(KnownUserProperties.LastName);
displayName = string.Format("{0} {1}", a, b);
}
}
Обратите внимание, что приведенный выше код работает только в собственном проекте UWP, и его нельзя использовать непосредственно в pcl, вам необходимо создать метод GetUser
через DependencyService
.
Обновить
Если вы авторизовались с помощью ADAL, вы можете использовать метод AcquireTokenSilentAsync
для автоматического получения информации из кэша токенов. -using-a-cached-token" rel="nofollow noreferrer">это.
person
Nico Zhu - MSFT
schedule
10.05.2018
DomainName
, затем вы можете отделить домен от строки. - person SushiHangover   schedule 09.05.2018