我正在asp.net core 2.2应用程序中使用Novell与AD进行交互。以下功能按预期工作。
但是当我尝试将条目移动到新容器中时,会出现以下异常
这是我正在使用的代码块。
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链接。
答案 0 :(得分:1)
有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
变量。