Delphi IPWorks LDAP PASSWD_CANT_CHANGE

问题描述 投票:0回答:1

我正在使用Delphi 10.3和IPWorks LDAP组件,我可以修改其他属性而不会出现任何问题,例如unicodePwd,givenName和mail,但无法绑定ADS_UF_PASSWD_CANT_CHANGE的用户的userAccountControl属性,当然是在成功绑定为具有安全连接并提供正确DN的管理员,因为如果连接不安全,则无法修改密码:

const
  ADS_UF_NORMAL_ACCOUNT = 512;
  ADS_UF_DONT_EXPIRE_PASSWD = 65536;
  ADS_UF_PASSWD_CANT_CHANGE = 64;
  ADS_UF_LOCKOUT = 16;

ipaLDAP1.DN := searchResultDN;
ipaLDAP1.AttrCount := 1;
ipaLDAP1.AttrType[0] := 'userAccountControl';
ipaLDAP1.AttrValue[0] := IntToStr(ADS_UF_NORMAL_ACCOUNT + ADS_UF_DONT_EXPIRE_PASSWD + ADS_UF_LOCKOUT + ADS_UF_PASSWD_CANT_CHANGE);
ipaLDAP1.AttrModOp[0] := amoReplace;

ipaLDAP1.Modify();

很奇怪,我无法修改ADS_UF_PASSWD_CANT_CHANGE,当我检查用户时它对用户无效,该属性仍未选中,我不明白为什么。

active-directory ldap delphi-xe2 windows-server-2012-r2 ipworks
1个回答
0
投票

[userAccountControl是位掩码,因此您应该使用or而不是+

© www.soinside.com 2019 - 2024. All rights reserved.