Ya que estás en una red de Windows, entonces usted necesita para consultar el directorio activo para buscar el usuario y luego obtener sus propiedades, tales como el correo electrónico
Aquí es una función de ejemplo DisplayUser
que le dio una IIdentity
en una red autenticado ventanas, se encuentra del usuario email
:
public static void Main() {
DisplayUser(WindowsIdentity.GetCurrent());
Console.ReadKey();
}
public static void DisplayUser(IIdentity id) {
WindowsIdentity winId = id as WindowsIdentity;
if (id == null) {
Console.WriteLine("Identity is not a windows identity");
return;
}
string userInQuestion = winId.Name.Split('\\')[1];
string myDomain = winId.Name.Split('\\')[0]; // this is the domain that the user is in
// the account that this program runs in should be authenticated in there
DirectoryEntry entry = new DirectoryEntry("LDAP://" + myDomain);
DirectorySearcher adSearcher = new DirectorySearcher(entry);
adSearcher.SearchScope = SearchScope.Subtree;
adSearcher.Filter = "(&(objectClass=user)(samaccountname=" + userInQuestion + "))";
SearchResult userObject = adSearcher.FindOne();
if (userObject != null) {
string[] props = new string[] { "title", "mail" };
foreach (string prop in props) {
Console.WriteLine("{0} : {1}", prop, userObject.Properties[prop][0]);
}
}
}
da esto: 
Editar: Si se obtiene el 'mal de usuario/contraseña errores' La cuenta que el código se ejecuta bajo deben tener acceso los usuarios del dominio. Si ejecuta el código en asp.net, entonces la aplicación web debe ejecutarse en un grupo de aplicaciones con credenciales con acceso de dominio. Ver here para más información
¿Está utilizando proveedor de memebership en su aplicación? – Restuta
no, mi aplicación. está en la intranet por lo que usa la autenticación de Windows. –