2011-09-09 18 views
27

Me gustaría saber la dirección de correo electrónico del usuario (suponiendo que esté en una red de oficina típica de Windows). Esto está en una aplicación C#. Tal vez algo en el sentido deObtiene la dirección de correo electrónico del usuario actual en .NET

CurrentUser.EmailAddress; 
+1

Su pregunta no es clara, y bajo-especificado. ¿Puedes repetirlo? –

+0

Por favor, aclare su pregunta. ¿Estás ampliando el servidor de intercambio a través de algún tipo de API? ¿Es esta una aplicación independiente que se conecta a Exchange y trata de averiguar cuándo se cumple la "determinada condición"? No nos está dando mucho para trabajar aquí. – feathj

+0

Estoy bastante seguro de que OP está hablando de AD. Sin embargo, Calv1n, probablemente debas aclarar tu pregunta editándola, o es probable que la comunidad la cierre. –

Respuesta

90

Referencia System.DirectoryServices.AccountManagement, entonces

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

O con un tiempo de espera:

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

Esta debería ser la respuesta aceptada. Mucho, mucho más simple que el artículo vinculado. –

+1

UserPrincipal.Current es muy lento en mi computadora que no es de dominio. Parece que hay un tiempo de espera de alrededor de 5 segundos antes de que la propiedad regrese y aún no he encontrado una manera de evitarlo. – angularsen

+1

Importante: Esto es MUY lento si el usuario no está en un dominio. Uno de esos problemas que verán sus clientes y no usted. – Robin

Cuestiones relacionadas