ADS_AUTHENTICATION_ENUM列舉 (iads.h)

ADS_AUTHENTICATION_ENUM列舉會指定ADSI中用於系結至目錄服務物件的驗證選項。 呼叫 IADsOpenDSObjectADsOpenObject 以系結至 ADSI 物件時,請至少提供其中一個選項。 一般而言,不同的提供者會有不同的實作。 這裡記載的選項適用於 MICROSOFT 隨附於 ADSI SDK 所提供的提供者。 如需詳細資訊,請參閱 ADSI系統提供者

Syntax

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 來驗證用戶端。 當
使用者名稱和密碼為 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
不需要可寫入的域控制器。 如果您的應用程式只從作用中讀取或查詢數據
目錄,您應該使用此旗標來開啟會話。 這可讓應用程式利用
Read-Only DC (RODC) 。

在 Windows Server 2008 中,ADSI 會嘗試連線到 Read-Only DC (RODC) 或可寫入 DC。 This
允許使用 RODC 進行存取,並讓應用程式在分支或周邊網路中執行
(也稱為 DMZ、非目標區域和已篩選子網) ,而不需要直接連線到
可寫入的 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_SERVERADS_PROMPT_CREDENTIALSADS_FAST_BIND等等。

無伺服器系結是指客戶端嘗試系結至 Active Directory 對象的進程,而不需在系結字串中明確指定 Active Directory 伺服器。 這是可行的,因為LDAP提供者依賴 Windows 的定位器服務來尋找用戶端的最佳域控制器 (DC) 。 不過,客戶端必須在 Active Directory 域控制器上擁有帳戶,才能利用無伺服器系結功能,而無伺服器系結所使用的 DC 一律會位於預設網域中;也就是說,與執行系結之線程目前安全性內容相關聯的網域。

因為 VBScript 無法從類型庫讀取數據,所以 VBScript 應用程式無法辨識上述定義的符號常數。 請改用數值常數,在 VBScript 應用程式中設定適當的旗標。 若要使用符號常數做為良好的程式設計作法,請在Visual Basic腳本版本應用程式中撰寫這類常數的明確宣告,如這裡所示。

範例

下列程式代碼範例示範如何使用 IADsOpenDSObject 開啟 fabrikam 上具有 WinNT 提供者安全驗證的物件。

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)

下列程式代碼範例示範如何搭配 ADsOpenObject 使用ADS_SECURE_AUTHENTICATION旗標,以驗證系結為 “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

另請參閱

ADSI 列舉

ADSI 系統提供者

ADsOpenObject

IADsAccessControlEntry

IADsOpenDSObject