Dans une application UWP, j'ai activé la fonctionnalité User Account Information
.Impossible d'obtenir des informations de compte utilisateur dans l'application UWP - Répertoire actif en local (non Azure AD)
Je dois obtenir le nom d'utilisateur et le nom de domaine (chacun séparément) de l'utilisateur actuellement connecté (Les utilisateurs sont connectés avec un compte Active Directory sur site - Non Azure AD). Par exemple, l'utilisateur se connecterait au domaine Active Directory domain1
à l'aide du nom d'utilisateur user1
. c'est-à-dire domain1\user1
.
J'utilise le code suivant pour essayer d'obtenir les détails nécessaires:
IReadOnlyList<User> users = await User.FindAllAsync();
var user = users.FirstOrDefault();
// get domain
var data1 = await user.GetPropertyAsync(KnownUserProperties.DomainName);
string strDomainName = (string)data1;
// get username
var data2 = await user.GetPropertyAsync(KnownUserProperties.AccountName);
string strUserName = (string)data2;
Questions:
strDomainName
retoursdomain1.com\user1
. Pourquoi cela inclut-il la partie.com
pour tous nos domaines? Sur les applications winforms C#, nous pouvons facilement obtenirdomain1\user1
sans aucun problème.strUserName
renvoie une chaîne vide. c'est à dire. "". Pourquoi cela ne renvoie-t-il aucune valeur?
J'ai aussi vérifié les éléments suivants:
KnownUserProperties.FirstName
retourne une chaîne vide. c'est-à-dire ""KnownUserProperties.LastName
renvoie une chaîne vide. c'est-à-dire ""KnownUserProperties.PrincipalName
renvoie une chaîne vide. c'est-à-dire ""KnownUserProperties.ProviderName
renvoie une chaîne vide. c'est-à-dire ""KnownUserProperties.GuestHost
renvoie une chaîne vide. c'est-à-dire ""
Y at-il autre chose dont j'ai besoin pour activer la capacité User Account Information
? Ou existe-t-il d'autres autorisations qui doivent être accordées à l'application pour obtenir cette information? Je comprends que je peux obtenir la valeur strDomainName
et effectuer des fonctions de chaîne pour obtenir ce dont j'ai besoin. Mais je veux savoir s'il existe un moyen d'obtenir cette information directement. Aussi curieux pourquoi KnownUserProperties.AccountName
et d'autres propriétés énumérées ci-dessus tels que FirstName
, LastName
etc juste renvoie une chaîne vide.
J'exécute la version suivante de Windows:
Je le suivant défini comme Target version
et Min Version
:
Pour vérifier, j'ai aussi testé avec le UserInfo sample project by Microsoft from GitHub et j'ai eu la sortie suivante:
Ce qui suit a été activée automatiquement dans Settings
>Privacy
>Account Info
.
TestApp
est l'application que j'ai essayé avec et User Info C# Sample
est l'exemple d'application de GitHub:
Mise à jour:
Après avoir activé également la capacité Enterprise Authentication
, KnownUserProperties.PrincipalName
ne retourne l'attend valeur. c'est-à-dire [email protected]
. Cependant, d'autres propriétés énumérées ci-dessus comme FirstName
, etc. LastName
juste retourne une chaîne vide et je suis toujours incapable de trouver une propriété qui retourne domain1\user1
(sans la partie .com
)