it-swarm.it

Ottieni l'indirizzo email dell'utente corrente in .NET

Mi piacerebbe conoscere l'indirizzo e-mail dell'utente (supponendo che si trovi in ​​una tipica rete di uffici Windows). Questo è in un'applicazione C #. Forse qualcosa per l'effetto di

CurrentUser.EmailAddress; 
32
Calv1n

Se sei dietro un dominio Windows, puoi sempre estrarre il loro indirizzo e-mail da Active Directory.

Ecco un esempio: http://lozanotek.com/blog/articles/149.aspx

5
Ryan

Riferimento System.DirectoryServices.AccountManagement, quindi

using System.DirectoryServices.AccountManagement;
UserPrincipal.Current.EmailAddress

O con un timeout:

var task = Task.Run(() => UserPrincipal.Current.EmailAddress);
if (task.Wait(TimeSpan.FromSeconds(1)))
    return task.Result;
105
Colonel Panic

Non volevo usare l'opzione Active Directory e l'altra, la risposta più selezionata, non ha funzionato per me abbastanza stranamente.

Ho cercato la mia banca del codice e ho trovato questo che funzionava bene e con una risposta rapida:

using (PrincipalContext ctx = new PrincipalContext(ContextType.Domain, "[domain]",  dc=xx,dc=yyy"))
{
    UserPrincipal cp = UserPrincipal.FindByIdentity(ctx, Environment.UserName);
    userEmail = cp.EmailAddress;
}
1
BillJam
// Simply by using UserPrincipal
// Include the namespace - System.DirectoryServices

using DS = System.DirectoryServices;
string CurrUsrEMail = string.Empty;
CurrUsrEMail = DS.AccountManagement.UserPrincipal.Current.EmailAddress;
0
fengfu bon