ADS_AUTHENTICATION_ENUM枚举 (iads.h)
ADS_AUTHENTICATION_ENUM枚举指定 ADSI 中用于绑定到目录服务对象的身份验证选项。 调用 IADsOpenDSObject 或 ADsOpenObject 以绑定到 ADSI 对象时,请提供至少一个选项。 通常,不同的提供程序将具有不同的实现。 此处所述的选项适用于 Microsoft 提供的提供程序,这些提供程序包含在 ADSI SDK 中。 有关详细信息,请参阅 ADSI 系统提供程序。
语法
typedef enum __MIDL___MIDL_itf_ads_0000_0000_0018 {
ADS_SECURE_AUTHENTICATION = 0x1,
ADS_USE_ENCRYPTION = 0x2,
ADS_USE_SSL = 0x2,
ADS_READONLY_SERVER = 0x4,
ADS_PROMPT_CREDENTIALS = 0x8,
ADS_NO_AUTHENTICATION = 0x10,
ADS_FAST_BIND = 0x20,
ADS_USE_SIGNING = 0x40,
ADS_USE_SEALING = 0x80,
ADS_USE_DELEGATION = 0x100,
ADS_SERVER_BIND = 0x200,
ADS_NO_REFERRAL_CHASING = 0x400,
ADS_AUTH_RESERVED = 0x80000000
} ADS_AUTHENTICATION_ENUM;
常量
ADS_SECURE_AUTHENTICATION 值: 0x1 请求安全身份验证。 设置此标志后,WinNT 提供程序使用 NT LAN Manager (NTLM) 对客户端进行身份验证。 Active Directory 将使用 Kerberos(可能为 NTLM)对客户端进行身份验证。 When 用户名和密码为 NULL,ADSI 使用安全性绑定到 对象 调用线程的上下文,即用户帐户的安全上下文,其下 应用程序正在运行或调用线程表示的客户端用户帐户。 |
ADS_USE_ENCRYPTION 值: 0x2 要求 ADSI 使用加密通过网络交换数据。 注意 WinNT 提供程序不支持此选项。 |
ADS_USE_SSL 值: 0x2 通道使用安全套接字层 (SSL) 进行加密。 Active Directory 要求证书 安装服务器以支持 SSL。 如果此标志未与 ADS_SECURE_AUTHENTICATION 标志和 提供的凭据为 NULL,绑定将以匿名方式执行。 如果此标志 与 ADS_SECURE_AUTHENTICATION 标志结合使用,并且提供的凭据为 NULL,则使用调用线程的凭据。 注意 WinNT 提供程序不支持此选项。 |
ADS_READONLY_SERVER 值: 0x4 不需要可写域控制器。 如果应用程序仅从 Active 读取或查询数据 目录,应使用此标志打开会话。 这允许应用程序利用 Read-Only DC (RODC) 。 在 Windows Server 2008 中,ADSI 尝试连接到 Read-Only DC (RODC) 或可写 DC。 此 允许使用 RODC 进行访问,并使应用程序能够在分支或外围网络中运行 (也称为外围网络、非军事区和屏蔽子网) ,无需与 直接连接 可写 DC。 有关 RODC 兼容性编程的详细信息,请参阅 只读域控制器应用程序兼容性指南。 |
ADS_PROMPT_CREDENTIALS 值: 0x8 不支持此标志。 |
ADS_NO_AUTHENTICATION 值: 0x10 不请求身份验证。 提供程序可能会尝试将客户端作为匿名用户绑定到 目标对象。 WinNT 提供程序不支持此标志。 Active Directory 在两者之间建立连接 客户端和目标对象,但不会执行身份验证。 设置此标志相当于请求 一个匿名绑定,将所有用户指示为安全上下文。 |
ADS_FAST_BIND 值: 0x20 设置此标志后,ADSI 不会尝试查询 objectClass 属性,因此将仅公开所有 ADSI 对象支持的基本接口,而不是完整对象 支持。 用户可以使用此选项来提高涉及的一系列对象操作的性能 仅基本接口的方法。 但是,ADSI 不会验证任何请求的对象是否实际 存在于服务器上。 有关详细信息,请参阅 批量写入/修改操作的快速绑定选项。 此选项对于绑定到非 Active Directory 目录服务(例如 Exchange 5.5)也很有用。 其中 objectClass 查询将失败。 |
ADS_USE_SIGNING 值: 0x40 验证数据完整性。 还必须设置 ADS_SECURE_AUTHENTICATION 标志 以使用签名。 注意 WinNT 提供程序不支持此选项。 |
ADS_USE_SEALING 值: 0x80 使用 Kerberos 将数据加密。 还必须设置 ADS_SECURE_AUTHENTICATION 标志 使用密封。 注意 WinNT 提供程序不支持此选项。 |
ADS_USE_DELEGATION 值: 0x100 使 ADSI 能够委托用户安全上下文,这是跨域移动对象所必需的。 |
ADS_SERVER_BIND 值: 0x200 如果在 LDAP 路径中传递了 Active Directory DNS 服务器名称,则会强制 A 记录查找和 在解析主机名时绕过任何 SRV 记录查找。 注意 WinNT 提供程序不支持此选项。 |
ADS_NO_REFERRAL_CHASING 值: 0x400 指定此标志以在连接生存期关闭引荐追逐。 但是,即使此标志 指定,ADSI 仍允许在设置容器枚举时设置引荐追逐行为 在 中使用 ADS_OPTION_REFERRALS 容器 枚举中所述ADS_OPTION_ENUM ( 使用引荐追逐 IADsObjectOptions::SetOption) 和 单独搜索 (,如 中所述 使用 IDirectorySearch) 进行引荐追逐 。 注意 WinNT 提供程序不支持此选项。 |
ADS_AUTH_RESERVED 值: 0x80000000 保留。 |
注解
ADS_SECURE_AUTHENTICATION标志可以与其他标志(如ADS_READONLY_SERVER、ADS_PROMPT_CREDENTIALS、ADS_FAST_BIND等)结合使用。
无服务器绑定是指客户端尝试绑定到 Active Directory 对象而未在绑定字符串中显式指定 Active Directory 服务器的过程。 这是可能的,因为 LDAP 提供程序依赖于 Windows 的定位器服务来查找客户端的最佳域控制器 (DC) 。 但是,客户端必须在 Active Directory 域控制器上具有帐户才能利用无服务器绑定功能,并且无服务器绑定使用的 DC 将始终位于默认域中;即与执行绑定的线程的当前安全上下文关联的域。
由于 VBScript 无法从类型库读取数据,因此 VBScript 应用程序无法识别上面定义的符号常量。 请改用数字常量在 VBScript 应用程序中设置适当的标志。 若要将符号常量用作良好的编程做法,请在 Visual Basic 脚本版本应用程序中编写此类常量的显式声明,如此处所示。
示例
下面的代码示例演示如何使用 IADsOpenDSObject 通过 WinNT 提供程序的安全身份验证在 fabrikam 上打开对象。
Const ADS_SECURE_AUTHENTICATION = 1
Dim dso As IADsOpenDSObject
Dim domain As IADsDomain
Set dso = GetObject("WinNT:")
Set domain = dso.OpenDSObject("WinNT://Fabrikam", vbNullString, vbNullString, ADS_SECURE_AUTHENTICATION)
下面的代码示例演示如何将 ADS_SECURE_AUTHENTICATION 标志与 ADsOpenObject 一起使用,以验证绑定为“JeffSmith”的用户。 用户名可以是 UPN 格式:“”JeffSmith@Fabrikam.com,以及可分辨名称格式:“CN=JeffSmith,DC=Fabrikam,DC=COM”。
IADs *pObject = NULL;
HRESULT hr;
hr = ADsOpenObject(_bstr_t("LDAP://CN=JeffSmith, DC=fabrikam, DC=com"),
NULL,
NULL,
ADS_SECURE_AUTHENTICATION,
IID_IADs,
(void**) &pObject);
if (hr != S_OK)
{} // Handle open object errors here.
else
{} // Object was retrieved, continue processing here.
要求
要求 | 值 |
---|---|
最低受支持的客户端 | Windows Vista |
最低受支持的服务器 | Windows Server 2008 |
标头 | iads.h |