Get current user's email address in .NET

前端 未结 4 1534
面向向阳花
面向向阳花 2021-02-02 07:24

I would like to know the email address of the user (assuming she\'s in a typical Windows office network). This is in a C# application. Perhaps something to the effect of

相关标签:
4条回答
  • 2021-02-02 07:43

    I didn't want to use the Active Directory option and the other, most selected answer, did not work for me oddly enough.

    I searched my code bank and found this which worked fine and with quick response:

    using (PrincipalContext ctx = new PrincipalContext(ContextType.Domain, "[domain]",  dc=xx,dc=yyy"))
    {
        UserPrincipal cp = UserPrincipal.FindByIdentity(ctx, Environment.UserName);
        userEmail = cp.EmailAddress;
    }
    
    0 讨论(0)
  • 2021-02-02 07:48

    Reference System.DirectoryServices.AccountManagement, then

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

    Or with a timeout:

    var task = Task.Run(() => UserPrincipal.Current.EmailAddress);
    if (task.Wait(TimeSpan.FromSeconds(1)))
        return task.Result;
    
    0 讨论(0)
  • 2021-02-02 07:52

    If you're behind a Windows domain, you could always grab their email address out of Active Directory.

    Here's an example: http://lozanotek.com/blog/articles/149.aspx

    0 讨论(0)
  • 2021-02-02 07:59
    // Simply by using UserPrincipal
    // Include the namespace - System.DirectoryServices
    
    using DS = System.DirectoryServices;
    string CurrUsrEMail = string.Empty;
    CurrUsrEMail = DS.AccountManagement.UserPrincipal.Current.EmailAddress;
    
    0 讨论(0)
提交回复
热议问题