C# 更改ldap中的objectclass

C# 更改ldap中的objectclass,c#,ldap,novell,C#,Ldap,Novell,我正在使用Novell.Directory.ldap库在ldap(使用Oracle Directory Services Enterprise Edition 11.1.1.5的Alcatel Omnivista)中创建用户 它已经运行多年了,但是自从Omnivista的最新更新以来,管理员遇到了我创建的用户的问题:objectclass的顺序错误 它应该在哪里 objectclass: top objectclass: person objectclass: organizationalPer

我正在使用Novell.Directory.ldap库在ldap(使用Oracle Directory Services Enterprise Edition 11.1.1.5的Alcatel Omnivista)中创建用户

它已经运行多年了,但是自从Omnivista的最新更新以来,管理员遇到了我创建的用户的问题:objectclass的顺序错误

它应该在哪里

objectclass: top
objectclass: person
objectclass: organizationalPerson
objectclass: inetorgperson
objectclass: CDPerson
它是:

objectclass: inetOrgPerson
objectclass: organizationalPerson
objectclass: person
objectclass: top
objectclass: CDPerson
因此,他们的管理应用程序工作完全错误

我正在使用以下初始化代码:

LdapAttributeSet attributeSet = new LdapAttributeSet
{
    new LdapAttribute("objectclass", "inetOrgPerson"),
    new LdapAttribute("cn", new[] {cg.Cn, cg.Cn}),
    new LdapAttribute("sn", cg.Sn)
};
我的问题是:

  • 这真的是个问题吗?订单重要吗?暗示管理应用程序中存在错误
  • 我可以在创建时更改objectclass吗?之后我应该吗
  • 或者它与ldap中的配置有关
非常感谢

在LDAP中,属性(如objectclass)有一组值,因此顺序无关紧要

应用程序不应该依赖于值的顺序,所以我认为这是管理应用程序中的一个bug

有些服务器保留客户端提供的值的顺序,有些则不保留,但我不知道行为在何处可配置。

在LDAP中,属性(如objectclass)有一组值,因此顺序无关紧要

应用程序不应该依赖于值的顺序,所以我认为这是管理应用程序中的一个bug


有些服务器保留客户端提供的值的顺序,有些则不保留,但我不知道在哪里可以配置该行为。

我在创建时设法更改了objectclass,现在应用程序运行良好。 尽管如此,我认为该应用程序在某些方面存在缺陷

如果有人有一天需要参考代码:

LdapAttributeSet attributeSet = new LdapAttributeSet
{
     new LdapAttribute("objectclass", new[] {"top", "person", "organizationalPerson", "inetorgperson", "CDPerson"}),
     new LdapAttribute("cn", new[] {cg.Cn, cg.Cn}),
     new LdapAttribute("sn", cg.Sn),
};

我在创建时设法修改了objectclass,现在应用程序运行良好。 尽管如此,我认为该应用程序在某些方面存在缺陷

如果有人有一天需要参考代码:

LdapAttributeSet attributeSet = new LdapAttributeSet
{
     new LdapAttribute("objectclass", new[] {"top", "person", "organizationalPerson", "inetorgperson", "CDPerson"}),
     new LdapAttribute("cn", new[] {cg.Cn, cg.Cn}),
     new LdapAttribute("sn", cg.Sn),
};