RtlEqualPrefixSid 函数 (ntifs.h)
RtlEqualPrefixSid 例程确定两个安全标识符(SID)前缀是否相等。 SID 前缀是除最后一个子授权值以外的整个 SID。
语法
NTSYSAPI BOOLEAN RtlEqualPrefixSid(
[in] PSID Sid1,
[in] PSID Sid2
);
参数
[in] Sid1
指向要比较的第一个 SID 结构的指针。 必须指向有效的 SID。
[in] Sid2
指向要比较的第二个 SID 结构的指针。 必须指向有效的 SID。
返回值
如果 SID 前缀相等,则 RtlEqualPrefixSid 返回 true TRUE;否则为 FALSE。 如果任一 SID 结构无效,则返回值未定义。
言论
RtlEqualPrefixSid 使一个域中的服务器能够验证用户登录另一个域的尝试。 例如,如果用户尝试从 LocalDomain 中的工作站登录到 RemoteDomain,则 LocalDomain 的服务器可以从 RemoteDomain 请求用户的 SID 和用户的组。 RemoteDomain 的域控制器使用相关的 SID 进行响应。
指定域的所有 SID 都必须具有相同的前缀。 当服务器收到用户的 SID 时,它可以为每个 SID 调用 RtlEqualPrefixSid,并将用户或组 SID 与 RemoteDomain 的 SID 进行比较。 如果任何 SID 前缀不相等,服务器将拒绝登录尝试。
建议先修改域的 SID,然后再将其与组或用户 SID 进行比较。 如果 RemoteDomain 的 SID 为 S-1-1234-8,则该域的每个组或用户 SID 都将具有 S-1-1234-8 作为其前缀。 若要使用 RtlEqualPrefixSid比较 SID,调用方将复制域 SID 并将任何子授权相对标识符值添加到副本,从而以 S-1-1234-8-0 的形式创建 SID。 (相对标识符或 RID 是一个 SID 的一部分,用于标识与颁发 SID 的颁发机构相关的用户或组。然后,调用方使用修改后的域 SID 作为与之进行比较组和用户 SID 的模板。
有关安全和访问控制的详细信息,请参阅适用于驱动程序开发人员 Windows 安全模型,以及有关 Windows SDK 中这些主题的文档。
要求
要求 | 价值 |
---|---|
目标平台 | 普遍 |
标头 | ntifs.h (include Ntifs.h) |
库 | Ntdll.lib |
DLL | Ntdll.dll |
IRQL | <= APC_LEVEL |