J'aimerais connaître l'adresse électronique de l'utilisateur (en supposant qu'elle se trouve dans un réseau de bureau Windows typique). Ceci est dans une application C #. Peut-être quelque chose à l'effet de
CurrentUser.EmailAddress;
Si vous êtes derrière un domaine Windows, vous pouvez toujours extraire leur adresse électronique d'Active Directory.
Voici un exemple: http://lozanotek.com/blog/articles/149.aspx
Référence System.DirectoryServices.AccountManagement
, puis
using System.DirectoryServices.AccountManagement;
UserPrincipal.Current.EmailAddress
Ou avec un délai d'attente:
var task = Task.Run(() => UserPrincipal.Current.EmailAddress);
if (task.Wait(TimeSpan.FromSeconds(1)))
return task.Result;
Je ne voulais pas utiliser l'option Active Directory et l'autre, la réponse la plus sélectionnée, ne fonctionnait pas assez étrangement pour moi.
J'ai cherché dans ma banque de code et j'ai trouvé ceci qui fonctionnait bien et avec une réponse rapide:
using (PrincipalContext ctx = new PrincipalContext(ContextType.Domain, "[domain]", dc=xx,dc=yyy"))
{
UserPrincipal cp = UserPrincipal.FindByIdentity(ctx, Environment.UserName);
userEmail = cp.EmailAddress;
}
// Simply by using UserPrincipal
// Include the namespace - System.DirectoryServices
using DS = System.DirectoryServices;
string CurrUsrEMail = string.Empty;
CurrUsrEMail = DS.AccountManagement.UserPrincipal.Current.EmailAddress;