[UWP, C#] Obtenir les informations utilisateur
Dans une application il est parfois intéressant d’obtenir les informations basiques de l’utilisateur (via la session Windows).
En WinRT nous avions accès avec la classe UserInformation à plusieurs méthodes pour connaitre le nom, le prénom, l’image … Avec le passage aux environnements Windows 10, cette classe ne fonctionne plus et ne renvoie plus aucune information mais Microsoft propose une alternative avec la classe User. Avec cette nouvelle classe, pour obtenir les informations de l’utilisateur il va falloir le faire en deux étapes :
- Obtenir l’utilisateur avec la méthode FindAllAsync
- A partir de cet utilisateur, obtenir les informations nécessaires avec la méthode GetPropertiesAsync ou la méthode GetPropertyAsync
Voici un exemple de comment mettre en place ces méthodes :
// Obtention de tous les utilisateurs IEnumerable<User> users = await Windows.System.User.FindAllAsync(); // Dans mon cas je récupère le premier mais il vous faudra peut être choisir le bon User currentUser = users.FirstOrDefault(); if (currentUser != null) { // Obtention d'une information à l'unitié ici le prénom object firstName = await currentUser.GetPropertyAsync(KnownUserProperties.FirstName); Debug.WriteLine("Bonjour {0} !", firstName); // Obtention de plusieurs informations IPropertySet properties = await currentUser.GetPropertiesAsync(new string[] { KnownUserProperties.FirstName, KnownUserProperties.LastName }); Debug.WriteLine("Bonjour {0} {1} !", properties.First(kvp => kvp.Key == KnownUserProperties.FirstName), properties.First(kvp => kvp.Key == KnownUserProperties.LastName)); }
Dans mon cas, l’output m’affiche :
Bonjour Teddy ! Bonjour Teddy Desmas !
La liste des informations pouvant être obtenue via ces méthodes est disponible dans la classe KnownUserProperties, à cela s’ajoute l’obtention de la photo de compte via la méthode GetPictureAsync qui pour le moment ne semble pas fonctionner, du moins chez moi (j’obtiens toujours la photo de base de Windows 10).
Voilà, j’espère que cet article vous aura aidé notamment si vous développez sous Windows 10 ou si vous portez votre application Windows 8.1 vers Windows 10.
Commentaires