KERB_ADD_BINDING_CACHE_ENTRY_EX_REQUEST結構 (ntsecapi.h)
允許用戶系結至特定域控制器 (DC) ,覆寫 Kerberos 網域系結快取。 啟用動態 存取控制 (DAC) 時,Kerberos 會強制執行 DC 查閱,因此通常驗證不會繫結至特定的 DC。 某些使用者可能會想要系結至他們建立帳戶的特定 DC,或設定新的密碼,以避免 DC 複寫延遲。 您必須設定 SeTcbPrivilege 許可權。
語法
typedef struct _KERB_ADD_BINDING_CACHE_ENTRY_EX_REQUEST {
KERB_PROTOCOL_MESSAGE_TYPE MessageType;
UNICODE_STRING RealmName;
UNICODE_STRING KdcAddress;
ULONG AddressType;
ULONG DcFlags;
} KERB_ADD_BINDING_CACHE_ENTRY_EX_REQUEST, *PKERB_ADD_BINDING_CACHE_ENTRY_EX_REQUEST;
成員
MessageType
KERB_PROTOCOL_MESSAGE_TYPE列舉的值,列出可藉由呼叫 LsaCallAuthenticationPackage 函式傳送至 Kerberos 驗證套件的訊息類型。 此成員必須設定為 KerbAddBindingCacheEntryExMessage。
RealmName
域控制器領域的名稱。
KdcAddress
您要繫結之伺服器的金鑰發佈中心 (KDC) 位址。
AddressType
包含在 KdcAddress 成員中的字串類型。 這可以是下列其中一個值。
值 | 意義 |
---|---|
|
位址是域控制器的字串 IP 位址,例如 “\\157.55.94.74”) 。 |
|
位址是域控制器的 NetBIOS 名稱,例如 “\\phoenix”。 |
DcFlags
呼叫端提供的域控制器旗標。 需要這些旗標才能傳遞至 DsGetDcName 函式。
備註
若要符合使用者的需求和 Kerberos 的需求,您必須進行兩次呼叫來覆寫 Kerberos 網域系結快取。
- 首先,您會建構KERB_QUERY_DOMAIN_EXTENDED_POLICIES_REQUEST的要求訊息類型,其中 MessageType 成員必須設定為 KerbQueryDomainExtendedPoliciesMessage。 DomainName 成員會設定為查詢擴充網域原則的實際功能變數名稱。 如果 DomainName 設定為 null,則會假設本機計算機的網域。
-
接下來,您會使用 Kerberos 驗證套件和要求訊息呼叫 LsaCallAuthenticationPackage 函式。 成功傳回時, 會傳回KERB_QUERY_DOMAIN_EXTENDED_POLICIES_RESPONSE 。
- 如果本機計算機已停用 DAC,Flags 成員會設定為 KERB_QUERY_DOMAIN_EXTENDED_POLICIES_RESPONSE_FLAG_DAC_DISABLED。
- 如果指定的網域已啟用彈性驗證安全通道 (FAST) , 則ExtendedPolicies 成員會設定為 KERB_EXTENDED_POLICY_FAST_CAPABLE (0x10000) 。
- 如果指定的網域已啟用宣告, ExtendedPolicies 成員會設定為 KERB_EXTENDED_POLICY_CLAIMS_CAPABLE (0x40000) 。
- 如果本機計算機網域未停用 DAC,而且指定的網域已啟用 FAST 或 Claims,DsGetDcName 函式的 DsFlags 成員會設定為 DS_DIRECTORY_SERVICE_8_REQUIRED。 否則, DsFlags 為 0。
- 如果函式在 ProtocolStatus 成員中傳回失敗,STATUS_NOT_FOUND表示無法查詢指定的網域,因為本機計算機不信任指定的網域。 其他錯誤碼表示發生的實際失敗。
- 然後,您必須使用以代表您自己的需求的旗標設定的傳回 DsFlags 來呼叫 DsGetDcName,因此請使用邏輯運算符 OR。 會傳回 DomainControllerInfo 成員。
- 最後,您會使用 Kerberos 驗證套件再次呼叫 LsaCallAuthenticationPackage 函式,以及將 DcFlags 成員設定為 DomainControllerInfo 旗標的要求KERB_ADD_BINDING_CACHE_ENTRY_EX_REQUEST。 所有其他成員都應該以 與KERB_ADD_BINDING_CACHE_ENTRY_EX_REQUEST相同的方式填入。 如果KERB_QUERY_DOMAIN_EXTENDED_POLICIES_RESPONSE的 DsFlags 為零,則呼叫 KERB_ADD_BINDING_CACHE_ENTRY_EX_REQUEST 或預設回現有KERB_ADD_BINDING_CACHE_ENTRY_REQUEST要求時,DcFlags 應設定為零。
規格需求
需求 | 值 |
---|---|
最低支援的用戶端 | Windows 8 [僅限傳統型應用程式] |
最低支援的伺服器 | Windows Server 2012 [僅限傳統型應用程式] |
標頭 | ntsecapi.h |