C# OpenLDAP Error: unicodePwd: attribute type undefined
C# OpenLDAP Error: unicodePwd: attribute type undefined
我正在尝试使用库 Novell.Directory.Ldap
从 ASP.NET Core Web API 更改 OpenLDAP 的用户密码。 OpenLDAP 在 Ubuntu 18.04 上配置并启用了 SSL。所以我使用 SecureSocketLayer = true
和 Port = 636
选项进行连接。以下是更改密码的代码:
string oldPassword = '"' + OldPassword + '"';
string newPassword = '"' + NewPassword + '"';
var oldPasswordbytes = Encoding.Unicode.GetBytes(oldPassword);
var newPasswordbytes = Encoding.Unicode.GetBytes(newPassword);
LdapModification[] modifications = new LdapModification[2];
LdapAttribute deletePassword = new LdapAttribute("unicodePwd", oldPasswordbytes);
modifications[0] = new LdapModification(LdapModification.Delete, deletePassword);
LdapAttribute addPassword = new LdapAttribute("unicodePwd", newPasswordbytes );
modifications[1] = new LdapModification(LdapModification.Add, addPassword);
connection.Modify(userDn, modifications);
此代码适用于 AD 域。但对于 OpenLDAP,它给出了错误:
unicodePwd: attribute type undefined
我试过 userPassword
而不是 unicodePwd
,但错误类型相同。
此错误是否属于 OpenLDAP 中不存在的属性,或者我无法将此代码用于 OpenLDAP?如何使用 C# 库更改 OpenLDAP 用户密码?
只有 Active Directory 需要特殊格式的密码值。对于 OpenLDAP,只需使用不带引号的常规字符串。
此外,OpenLDAP 使用 userPassword
属性。
我正在尝试使用库 Novell.Directory.Ldap
从 ASP.NET Core Web API 更改 OpenLDAP 的用户密码。 OpenLDAP 在 Ubuntu 18.04 上配置并启用了 SSL。所以我使用 SecureSocketLayer = true
和 Port = 636
选项进行连接。以下是更改密码的代码:
string oldPassword = '"' + OldPassword + '"';
string newPassword = '"' + NewPassword + '"';
var oldPasswordbytes = Encoding.Unicode.GetBytes(oldPassword);
var newPasswordbytes = Encoding.Unicode.GetBytes(newPassword);
LdapModification[] modifications = new LdapModification[2];
LdapAttribute deletePassword = new LdapAttribute("unicodePwd", oldPasswordbytes);
modifications[0] = new LdapModification(LdapModification.Delete, deletePassword);
LdapAttribute addPassword = new LdapAttribute("unicodePwd", newPasswordbytes );
modifications[1] = new LdapModification(LdapModification.Add, addPassword);
connection.Modify(userDn, modifications);
此代码适用于 AD 域。但对于 OpenLDAP,它给出了错误:
unicodePwd: attribute type undefined
我试过 userPassword
而不是 unicodePwd
,但错误类型相同。
此错误是否属于 OpenLDAP 中不存在的属性,或者我无法将此代码用于 OpenLDAP?如何使用 C# 库更改 OpenLDAP 用户密码?
只有 Active Directory 需要特殊格式的密码值。对于 OpenLDAP,只需使用不带引号的常规字符串。
此外,OpenLDAP 使用 userPassword
属性。