[C#][LDAP]取得LDAP 身份資料

LDAP登入後,想取得一些基本資料。

程式範例:

//取得使用者基本資料 UserPrincipal.FindByIdentity 
//Domain:網域/電腦名稱/應用程式名稱
public static UserInfo SearchLDAPUser(string Domain, string UserName, string Password)
{
    //login in
    //網域/電腦名稱/應用程式名 Domain/Machine/ApplicationDirectory
    using (var context = new PrincipalContext(ContextType.Domain, Domain, UserName, Password))
    using (UserPrincipal user = UserPrincipal.FindByIdentity(context, UserName))
    {
        if (user != null)
        {
            var userInfo = new UserInfo
            {
                //取資料,依情況增加調整
                FullName = user.DisplayName,
                Email = user.EmailAddress,
                GivenName = user.GivenName,
                SamAccountName = user.SamAccountName,
                Surname = user.Surname,
                DistinguishedName = user.DistinguishedName,
                LastLogon = user.LastLogon,
                LastPasswordSet = user.LastPasswordSet,
                LastBadPasswordAttempt = user.LastBadPasswordAttempt,
                VoiceTelephoneNumber = user.VoiceTelephoneNumber,
            };
            return userInfo;
        }
        return new UserInfo();
    }
}

public class UserInfo
{
    public string FullName { get; set; }
    public string Email { get; set; }
    public string Surname { get; set; }
    public string GivenName { get; set; }
    public string SamAccountName { get; set; }
    public string DistinguishedName { get; set; }
    public DateTime? LastLogon { get; set; }
    public DateTime? LastPasswordSet { get; set; }
    public DateTime? LastBadPasswordAttempt { get; set; }
    public string VoiceTelephoneNumber { get; set; }
}

參考資料:
[C#.NET][Active Directory] 使用 PrincipalContext 類別確認帳號是否通過驗証

相關文章:
[C#][LDAP]使用LDAP 身份驗證

嘗試以自己的角度來整理並紀錄,也許會對一些人有幫助。

文章有錯、參考聯結有漏或是連結失效..等,還請幫忙告知,謝謝。
另外參考資料中有很多更棒的文章,建議多看看。