ユーザーの電子メールアドレスを知りたい(彼女が典型的なWindowsオフィスネットワークにいると仮定して)。これはC#アプリケーションです。おそらく何かの効果に
CurrentUser.EmailAddress;
Windowsドメインの背後にいる場合は、Active Directoryから電子メールアドレスをいつでも取得できます。
以下に例を示します: http://lozanotek.com/blog/articles/149.aspx
参照 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;
// Simply by using UserPrincipal
// Include the namespace - System.DirectoryServices
using DS = System.DirectoryServices;
string CurrUsrEMail = string.Empty;
CurrUsrEMail = DS.AccountManagement.UserPrincipal.Current.EmailAddress;
Active Directoryオプションを使用したくありませんでしたが、他の最も選択された答えは、奇妙なことに十分に機能しませんでした。
私は自分のコードバンクを検索し、これがうまく機能し、迅速な応答でこれを見つけました:
using (PrincipalContext ctx = new PrincipalContext(ContextType.Domain, "[domain]", dc=xx,dc=yyy"))
{
UserPrincipal cp = UserPrincipal.FindByIdentity(ctx, Environment.UserName);
userEmail = cp.EmailAddress;
}