Для приложения, которое я разрабатываю для клиента, мне нужно получить текущие данные пользователя. Затем я должен назначить права, сравнив пару «домен \ login» с таблицей, содержащей всех авторизованных пользователей.UWP: Получить текущее имя пользователя для предоставления прав пользователю
повторно использовать код, указанный на @Sergiu Кожокар 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);
}
Но на самом деле я только получить «ПгвЬЫат» и "lastName" от "KnownUserProperties". Иное свойство пустеет:
- ProviderName: нулевой
- AccountName: нулевой
- guestHost: нулевой
- PrincipalName: нулевой
- Домен: нулевой
- sipUri: нулевой
=> Это нормально?
Проблема заключается в том, что ожидаемая пара «домен \ Логин» основано на результатах командной строки «Whoami», который не дает тот же результат, что «ПгвЬЫате» и "lastName".
=> Есть ли способ получить тот же результат в приложении?
Уточняю, что я использую учетную запись Hotmail, но счета клиентов должны быть основаны на Active Directory: я не знаю, если это изменит что-нибудь ...
Если вы хотите взять имя пользователя для пользователя, проверьте это http://stackoverflow.com/questions/39949829/uwp-get-path-to-user-download-folder/39972084 # 39972084 – GeralexGR
Спасибо, но это не совсем то, что мне нужно, поскольку это дает только имя пользователя, но не домен ... –
Для domainName и sipUri я могу попасть на свою сторону. Вы присоединились к домену? –