EqualPrefixSid函数测试两个安全标识符(SID)前缀值以获得相等性。SID前缀是除最后一个子权限值之外的整个SID。
BOOL EqualPrefixSid(
PSID 【pSid1】, | //指向要比较的第一个SID的指针 |
PSID 【pSid2】 | //指向第二个SID进行比较 |
); |
参数
【pSid1】
指向第一个SID结构进行比较。这种结构被认为是有效的。
【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进行比较的模板。
也可以看看