DirectoryServices访问OpenLdap的若干问题 (入选推荐日志,加10币)
昨天晚上快2点才睡,终于把使用DirectoryServices访问OpenLdap的所有问题都解决了,这方面的资料好像国内的不多,遇到很多问题都是自己摸索,或者在国外的论坛上看到的。
1.DirectoryEntry的AuthenticationTypes必须设置成ServerBind
2.ldap直接认证,可以使用DirectoryEntry.NativeObject,只要不返回错误,就可以认为认证成功
3.搜索可以使用DirectorySearcher,调用 mySearchResult.GetDirectoryEntry可以对搜索项进行修改
4.Attribute Types 为Octet String 的必须string和asc byte数组类型之间转换(该类型一般用在password上)
5.新加用户使用DirectoryEntry.Children.Add的方法,该方面有两个参数,一个是dn,另一个为加入的Schema 的objectclass(注意千万不要忘记了所有在Schema中定义的必填项,否则会返回LDAP_NAMING_VIOLATION的错误)
6.当然,任何修改都需要.CommitChanges()
另外还有个遗留的小问题,Adsi Edit无法访问 OpenLdap,不知道是不是设置有问题