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 類別確認帳號是否通過驗証
嘗試以自己的角度來整理並紀錄,也許會對一些人有幫助。
文章有錯、參考聯結有漏或是連結失效..等,還請幫忙告知,謝謝。
另外參考資料中有很多更棒的文章,建議多看看。