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