重命名目录中的现有条目会出现错误 "Naming Violation"
Renaming an existing entry in the directory gives an error saying "Naming Violation"
我在 asp.net 核心 2.2 应用程序中使用 Novell 与 AD 交互。以下功能按预期工作。
- 获取所有用户,从特定 OU 获取用户
- 创建用户
- 更新用户
- 重设密码等
但是当我尝试将条目移动到新容器时,出现以下异常
- 命名违规
- ((Novell.Directory.Ldap.LdapException)e).LdapErrorMessage : "00000057: LdapErr: DSID-0C090E72, comment: 属性转换操作错误,数据 0,v4563"
这是我正在使用的代码块。
var dn = $"CN={user.FirstName} {user.LastName},{this._ldapSettings.ContainerName}";
//dn => CN=arshath shameer,CN=Users,DC=wxyzdev,DC=xyzdev,DC=ca
var newRDn = $"CN={user.FirstName} {user.LastName},OU=DeletedUsers,DC=wxyzdev,DC=xyzdev,DC=ca";
// newRDn => CN=arshath shameer,OU=DeletedUsers,DC=wxyzdev,DC=xyzdev,DC=ca
using (var ldapConnection = this.GetConnection())
{
//ldapConnection.Delete(dn);
ldapConnection.Rename(dn, newRDn, dn, true);
}
我正在关注 this link。
有 2 个问题需要解决:
RDN 表示 relative DN :DN 中实际生成的部分
与同一容器中的其他条目不同的条目,例如:
CN=arshath shameer
在 CN=arshath
shameer,CN=Users,DC=wxyzdev,DC=xyzdev,DC=ca
中。在您的情况下,由于您不想重命名而是要移动条目,因此它不会改变:
var newRDn = $"CN={user.FirstName} {user.LastName}";
移动条目时 - 与重命名相反 - RDN 保持不变,
但是 parentDN 发生了变化:
var parentDN = "OU=DeletedUsers,DC=wxyzdev,DC=xyzdev,DC=ca";
现在让我们移动条目:
ldapConnection.Rename(dn, newRDN, parentDN, true);
您可能还需要检查 {this._ldapSettings.ContainerName}
是否替换为 CN=Users,DC=wxyzdev,DC=xyzdev,DC=ca
以确保 dn
变量设置正确。
我遇到过这个问题。
从 google 看到这个帖子后,不清楚使用“CN=arshath shameer”。
请使用“CN=arshath shameer”代替“CN=arshath
newRDN参数中的shameer,CN=Users,DC=wxyzdev,DC=xyzdev,DC=ca。
谢谢
FRS.
我在 asp.net 核心 2.2 应用程序中使用 Novell 与 AD 交互。以下功能按预期工作。
- 获取所有用户,从特定 OU 获取用户
- 创建用户
- 更新用户
- 重设密码等
但是当我尝试将条目移动到新容器时,出现以下异常
- 命名违规
- ((Novell.Directory.Ldap.LdapException)e).LdapErrorMessage : "00000057: LdapErr: DSID-0C090E72, comment: 属性转换操作错误,数据 0,v4563"
这是我正在使用的代码块。
var dn = $"CN={user.FirstName} {user.LastName},{this._ldapSettings.ContainerName}";
//dn => CN=arshath shameer,CN=Users,DC=wxyzdev,DC=xyzdev,DC=ca
var newRDn = $"CN={user.FirstName} {user.LastName},OU=DeletedUsers,DC=wxyzdev,DC=xyzdev,DC=ca";
// newRDn => CN=arshath shameer,OU=DeletedUsers,DC=wxyzdev,DC=xyzdev,DC=ca
using (var ldapConnection = this.GetConnection())
{
//ldapConnection.Delete(dn);
ldapConnection.Rename(dn, newRDn, dn, true);
}
我正在关注 this link。
有 2 个问题需要解决:
RDN 表示 relative DN :DN 中实际生成的部分 与同一容器中的其他条目不同的条目,例如:
CN=arshath shameer
在CN=arshath shameer,CN=Users,DC=wxyzdev,DC=xyzdev,DC=ca
中。在您的情况下,由于您不想重命名而是要移动条目,因此它不会改变:var newRDn = $"CN={user.FirstName} {user.LastName}";
移动条目时 - 与重命名相反 - RDN 保持不变, 但是 parentDN 发生了变化:
var parentDN = "OU=DeletedUsers,DC=wxyzdev,DC=xyzdev,DC=ca";
现在让我们移动条目:
ldapConnection.Rename(dn, newRDN, parentDN, true);
您可能还需要检查 {this._ldapSettings.ContainerName}
是否替换为 CN=Users,DC=wxyzdev,DC=xyzdev,DC=ca
以确保 dn
变量设置正确。
我遇到过这个问题。
从 google 看到这个帖子后,不清楚使用“CN=arshath shameer”。
请使用“CN=arshath shameer”代替“CN=arshath
newRDN参数中的shameer,CN=Users,DC=wxyzdev,DC=xyzdev,DC=ca。
谢谢
FRS.