从 UserPrincipalName 继承扩展了一个类 ADUserPrincipalName,并写了几个AD域账号的属性,比如: UserPrincipalName,PasswordExpired,Department,Company;
其它属性都能正常获取和设置,唯独PasswordExpired 一直获取都是null,获取该属性是为了检查AD域账号的密码是否过期,代码大概如下面所写:
[DirectoryProperty("PasswordExpired")]
public string PasswordExpired {
get { var result = this.ExtensionGet("PasswordExpired"); ... }
}
result 变量总是为 null,为了验证该AD域账号是否存在PasswordExpired 属性,在域控(WinServer2012 R2, 域控等级为WinServer2012 R2)中用powershell 打印了一个密码过期的用户的属性
Get-ADUser -Identity it01 -Properties PasswordExpired
得到以下结果:
DistinguishedName : CN=it01,OU=it,DC=tad,DC=local
Enabled : True
GivenName : it01
Name : it01
ObjectClass : user
ObjectGUID : c5a247c0-efeb-47a5-a341-5573d590364e
PasswordExpired : True
SamAccountName : it01
SID : S-1-5-21-4238215597-1604080069-2476239886-1113
Surname :
UserPrincipalName : it01@tad.local
可以说明该域账号是存在PasswordExpired 属性,但是为什么用ExtensionGet() 方法就无法获取呢?