在我的应用程序中,我正在使用ntrights.exe ,这是Windows资源工具包的一部分,授予和撤销特定的用户权限。
例如要授予用户“login为服务器”的权利,我使用shell对象执行以下命令:
ntrights -u User +r SeServiceLogonRight
然而, ntrights不允许你检查用户是否有特定的权利。
你能告诉我如何检查用户是否有特定的权利?
最好的办法是创build一个令牌作为用户(使用LogonUser API),然后检查在phToken中返回的令牌。 这样你就可以获得OS代码来创build安全令牌,而不是试图自己做一些半途而废的事情。 我假设你正在创build一个服务帐户的上下文,所以你应该有一个帐户的明文密码,以便调用LogonUser。
从工作系统pipe理员的一些build议:如果你正在开发一个公共消费应用程序,不要使用像“ntrights”这样的工具来修改我的机器上的安全策略。 在文档中告诉我什么权利需要授予您的服务将运行的用户上下文,我会授予权利,但我想要的(使用组策略等)。 您当然可以提供修改本地安全策略的选项 ,但需要logging权限并让更高级的系统pipe理员自行处理。 (支持一个应用程序,使得本地安全策略没有明确的文档,这是一个令人沮丧的事情,在域环境中,我经常想要在组策略而不是本地安全策略中进行更改,我怀疑其他人会同意跟我。)