共用方式為


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 成員中的字串類型。 這可以是下列其中一個值。

意義
DS_INET_ADDRESS
位址是域控制器的字串 IP 位址,例如 “\\157.55.94.74”) 。
DS_NETBIOS_ADDRESS
位址是域控制器的 NetBIOS 名稱,例如 “\\phoenix”。

DcFlags

呼叫端提供的域控制器旗標。 需要這些旗標才能傳遞至 DsGetDcName 函式。

備註

若要符合使用者的需求和 Kerberos 的需求,您必須進行兩次呼叫來覆寫 Kerberos 網域系結快取。

  1. 首先,您會建構KERB_QUERY_DOMAIN_EXTENDED_POLICIES_REQUEST的要求訊息類型其中 MessageType 成員必須設定為 KerbQueryDomainExtendedPoliciesMessageDomainName 成員會設定為查詢擴充網域原則的實際功能變數名稱。 如果 DomainName 設定為 null,則會假設本機計算機的網域。
  2. 接下來,您會使用 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表示無法查詢指定的網域,因為本機計算機不信任指定的網域。 其他錯誤碼表示發生的實際失敗。
  3. 然後,您必須使用以代表您自己的需求的旗標設定的傳回 DsFlags 來呼叫 DsGetDcName,因此請使用邏輯運算符 OR。 會傳回 DomainControllerInfo 成員。
  4. 最後,您會使用 Kerberos 驗證套件再次呼叫 LsaCallAuthenticationPackage 函式,以及將 DcFlags 成員設定為 DomainControllerInfo 旗標的要求KERB_ADD_BINDING_CACHE_ENTRY_EX_REQUEST。 所有其他成員都應該以 與KERB_ADD_BINDING_CACHE_ENTRY_EX_REQUEST相同的方式填入。 如果KERB_QUERY_DOMAIN_EXTENDED_POLICIES_RESPONSEDsFlags 為零,則呼叫 KERB_ADD_BINDING_CACHE_ENTRY_EX_REQUEST 或預設回現有KERB_ADD_BINDING_CACHE_ENTRY_REQUEST要求時,DcFlags 應設定為零。

規格需求

需求
最低支援的用戶端 Windows 8 [僅限傳統型應用程式]
最低支援的伺服器 Windows Server 2012 [僅限傳統型應用程式]
標頭 ntsecapi.h

另請參閱

LsaCallAuthenticationPackage