【发布时间】:2016-01-25 20:07:50
【问题描述】:
我的应用程序需要将大量的PSIDs 转换为友好的域\用户名字符串。
这可以通过LookupAccountSid 完成。不幸的是,这个 API 需要在很多地方进行嗅探才能解析 SID,包括可能的网络调用。因此,我想缓存以前见过的 SID。
我目前正在使用哈希表 (CMap) 执行此操作,该哈希表由 SID 的字符串表示作为键,即ConvertSidToStringSid 的结果。这很好,但我想知道是否有一个众所周知的、有效的、可靠的 SID 哈希例程,所以我不必转换为字符串?
可能将 SID 复制到字节缓冲区并散列缓冲区?还是通过其他 API 遍历 SID 本身的结构?
【问题讨论】:
-
您在谈论多少个 SID(以便您期望它产生可衡量的差异)?
-
一个 SID 由多个 SID Components 组成,其中最后一个组件由 变量 个子权限值组成。由于此组件可以任意长,因此字符串表示可能是您的最佳选择。
-
将 SID 作为一组字节散列应该可以很好地工作。