【发布时间】:2015-03-16 10:57:06
【问题描述】:
我正在编写一个windows服务,它根据不同的规则执行操作,其中一个是基于请求用户身份的。
它因此接收请求的用户 SID,然后将其与其内部 SID 列表进行比较,以决定它将执行什么操作。使用EqualSID API 函数让这一切变得非常简单。
但是,我现在面临服务列表中的某些 SID 是组 SID 而不是用户 SID 的情况。
这意味着我必须找到一种方法来测试接收到的 SID 是等于列表中的那个还是属于列表中的 SID 所代表的组。
我环顾四周,看看有哪些 API 可用,并找到了需要令牌句柄的 CheckTokenMembership。那是我有点迷茫的地方,因为服务不一定位于同一台机器上,我似乎无法找到从收到的 SID 创建有效令牌句柄的方法。
服务本身在默认的“NT 服务”帐户下运行,如果它可以保持这种方式,我更愿意。
您建议我使用什么 API?
目标语言是 Delphi,但我可以理解纯 C 语言的示例。
【问题讨论】:
标签: winapi