Jak*_*kub 3 .net directoryservices ldap active-directory
我需要知道AuthenticationTypes中的等效AuthType值,以便从S.DS迁移到S.DS.P代码.
我正在重写当前使用System.DirectoryServices命名空间的LDAP连接模块.为了增加与非ActiveDirectory服务器的兼容性,我试图重写所有代码以使用System.DirectoryServices.Protocols(根据".NET开发人员目录服务编程指南"中的建议).一切顺利,除了使用AuthenticationTypes枚举与SD.Protocols使用的AuthType之间的转换.我需要知道两者之间的等价物,以便使用旧代码的客户端在新代码发布时不会丢失功能.
我所知道的等价物是:
无 - >基本
安全 - >协商(或多或少)
匿名 - >无
SecureSocketsLayer - >将LdapSessionOptions.SecureSocketsLayer设置为true
看起来你走在了正确的轨道上.
在做了一些研究之后,我能够映射几乎所有的AuthenticationTypes值:
无:AuthType.Basic
安全:AuthType.Negotiate
匿名:AuthType.Anonymous
签名:LdapSessionOptions.Signing
密封:LdapSessionOptions.Sealing
SecureSocketLayer:LdapSessionOptions.SecureSocketLayer
加密:与SecureSocketLayer相同的值
ReadonlyServer:LdapSessionOptions.LocatorFlag.WriteableRequired = false
Serverbind:使用具有fullyQualifiedDnsHostName参数的LdapDirectoryIdentifier构造函数之一,其值设置为true.
FastBind:不适用,因为这个S.DS.P工作在较低的水平.
代表团:未找到相应的设置.可能是代表团是隐含的.一种测试方法是转换此页面上的代码并查看它是否有效.
请注意,并非所有非AD服务器都支持AuthType.Negotiate,因为它是特定于Windows的.还有其他一些东西(比如一些LocatorFlag值)对非AD系统也没有任何意义.因此,在转换假定AD连接的代码时要小心,因为某些假设将不再安全.