我需要知道AuthenticationTypes的等效AuthType值才能从S.DS迁移到S.DS.P代码。
我正在重写一个当前使用System.DirectoryServices名称空间的LDAP连接模块。为了增加与非ActiveDirectory服务器的兼容性,我正在尝试重写所有代码以使用System.DirectoryServices.Protocols (按照“.NET开发人员目录服务编程指南”中的建议)。除了使用AuthenticationTypes枚举到SD.Protocols使用的AuthType枚举之间的转换之外,其他一切都很顺利。我需要知道这两者之间的等价物,以便使用旧代码的客户端在新代码发布时不会失去功能。
我所知道的等价物是:
无-> Basic
安全->协商(或多或少)
匿名->无
SecureSocketsLayer ->将LdapSessionOptions.SecureSocketsLayer设置为true
发布于 2011-07-27 04:41:49
看起来你走对了路。
在做了一些研究之后,我能够映射几乎所有的AuthenticationTypes值:
无: AuthType.Basic
安全: AuthType.Negotiate
匿名: AuthType.Anonymous
签名: LdapSessionOptions.Signing
密封: LdapSessionOptions.Sealing
SecureSocketLayer: LdapSessionOptions.SecureSocketLayer
加密:与SecureSocketLayer相同的值
false : LdapSessionOptions.LocatorFlag.WriteableRequired =ReadonlyServer
Serverbind:使用一个带有fullyQualifiedDnsHostName参数的LdapDirectoryIdentifier构造函数,并将其值设置为true。
FastBind:不适用,因为此S.DS.P在较低级别工作。
委托:找不到对应的设置。委派可能是隐含的。测试的一种方法是转换this page上的代码,看看它是否工作。
请注意,并非所有非AD服务器都支持AuthType.Negotiate,因为它是特定于Windows的。还有其他一些东西(比如一些LocatorFlag值)对非AD系统也没有任何意义。因此,在转换假设AD连接的代码时要小心,因为某些假设将不再安全。
https://stackoverflow.com/questions/6551737
复制相似问题