2011-09-09 78 views
27

我想知道用户的电子邮件地址(假设她在典型的Windows办公室网络中)。这是在C#应用程序中。也许有什么影响在.NET中获取当前用户的电子邮件地址

CurrentUser.EmailAddress; 
+1

你的问题不清楚,并在指定的。你能重申它吗? –

+0

请说明你的问题。你是通过某种API扩展交换服务器吗?这是一个独立的应用程序,连接到交换并试图找出何时满足“某些条件”?你在这里没有给我们太多的工作。 – feathj

+0

我很确定OP在谈论AD。但是,Calv1n,您应该通过编辑来澄清您的问题,否则社区可能会将其关闭。 –

回答

90

参考System.DirectoryServices.AccountManagement,然后

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

或者有超时:

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

这应该是被接受的答案。很多,比链接的文章更简单。 –

+1

UserPrincipal.Current在我的非域计算机上非常慢。似乎在该属性返回前大约5秒的超时时间,我还没有找到解决该问题的方法。 – angularsen

+1

重要提示:如果用户不在域上,则速度非常慢。您的客户将会看到的其中一个问题,而不是您。 – Robin

相关问题