首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从System.DirectoryServices切换到DirectoryServices.Protocols时的身份验证类型

从System.DirectoryServices切换到DirectoryServices.Protocols时的身份验证类型
EN

Stack Overflow用户
提问于 2011-07-02 02:18:24
回答 1查看 2.3K关注 0票数 3

我需要知道AuthenticationTypes的等效AuthType值才能从S.DS迁移到S.DS.P代码。

我正在重写一个当前使用System.DirectoryServices名称空间的LDAP连接模块。为了增加与非ActiveDirectory服务器的兼容性,我正在尝试重写所有代码以使用System.DirectoryServices.Protocols (按照“.NET开发人员目录服务编程指南”中的建议)。除了使用AuthenticationTypes枚举到SD.Protocols使用的AuthType枚举之间的转换之外,其他一切都很顺利。我需要知道这两者之间的等价物,以便使用旧代码的客户端在新代码发布时不会失去功能。

我所知道的等价物是:

无-> Basic

安全->协商(或多或少)

匿名->无

SecureSocketsLayer ->将LdapSessionOptions.SecureSocketsLayer设置为true

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 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连接的代码时要小心,因为某些假设将不再安全。

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6551737

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档