EqualPrefixSid 函式 (securitybaseapi.h)

EqualPrefixSid 函式會測試兩個安全性標識碼 (SID) 前置詞值是否相等。 SID 前置詞是最後一個子授權值以外的整個 SID。

語法

BOOL EqualPrefixSid(
  [in] PSID pSid1,
  [in] PSID pSid2
);

參數

[in] pSid1

要比較之第一個 SID 結構的指標。 此結構假設為有效。

[in] pSid2

要比較之第二 個SID 結構的指標。 此結構假設為有效。

傳回值

如果 SID 前置詞相等,則傳回值為非零。

如果 SID 前置詞不相等,則傳回值為零。 若要取得擴充的錯誤資訊,請呼叫 GetLastError

備註

EqualPrefixSid 函式可讓某個網域中的伺服器應用程式驗證使用者登入另一個網域的嘗試。 例如,如果用戶嘗試從 LocalDomain 中的工作站登入 RemoteDomain,則 LocalDomain 的伺服器可以從 RemoteDomain 要求使用者的 SID 和使用者的群組。 RemoteDomain 的域控制器會以相關的 SID 回應。

指定網域的所有 SID 都有相同的前置詞。 當伺服器收到使用者的 SID 時,伺服器可以針對每個 SID 呼叫 EqualPrefixSid 函式,並將使用者或群組 SID 與 RemoteDomain 的 SID 進行比較。 如果有任何 SID 前置詞不相等,伺服器會拒絕登入嘗試。

建議您先修改網域的 SID,再將其與群組或使用者 SID 進行比較。 如果 RemoteDomain 的 SID 是 S-1–1234–8,該網域的每個群組或使用者 SID 都有 S-1–1234–8 作為前置詞。 若要使用 EqualPrefixSid 函式來比較 SID,應用程式會複製網域 SID,並將任何子授權 (RID) 值新增至複本,藉此以 S-1-1234–8–0 的形式建立 SID。 然後,應用程式會使用修改過的網域 SID 做為範本,用來比較群組和使用者 SID。

規格需求

需求
最低支援的用戶端 Windows XP [僅限傳統型應用程式]
最低支援的伺服器 Windows Server 2003 [僅限傳統型應用程式]
目標平台 Windows
標頭 securitybaseapi.h (包括 Windows.h)
程式庫 Advapi32.lib
Dll Advapi32.dll

另請參閱

存取控制 概觀

基本 存取控制 函式

CopySid

EqualSid

IsValidSid

SID