【发布时间】:2016-08-22 09:33:11
【问题描述】:
如果我拥有的唯一信息是用户名(以及相关的域),我如何知道用户是否是管理员组的成员?
我确实知道如何为当前用户获取此信息。 但是,就我而言,我需要为尚未登录的用户获取此信息(我正在使用凭据提供程序)。因此,我只能使用用户名和域。
此问题仅与 Windows 机器有关。
我正在使用 C#/C++。
我知道 C# WindowsPrincipal 类如:WindowsPrincipal
我也知道 IsUserAnAdmin() Windows API。 但是,我不能使用这些方法,因为我正在处理尚未登录的用户(我的代码在用户实际进入 Windows 机器之前执行)
【问题讨论】:
-
你试过 cmd-line
net user /domain the_user_id吗?它返回了很多东西。 -
管理员权限是什么?文件,服务器,它们所在的电脑?你在运行一个网站,一个 Windows 应用程序,你是从 Windows 机器还是 unix 机器运行它?没有足够的信息可以帮助您
-
Windows 使用安全对象。访问对象(如文件或进程)的要求是为每个对象单独设置的。没有“此用户可以访问所有内容” 用户帐户,更不用说表明这一点的标志。你为什么不问真正的问题,而不是你的解决方案?
-
让我重新表述我的问题:我需要找到一种编程方式来了解用户是否是管理员(管理员组的成员)。如果我能够获取当前用户的这些信息,我可以使用 IsUserAnAdmin() Windows API 或通过 WindowsPrincipal 类进行检查。我不能。我正在使用凭据提供程序,但用户尚未登录。
-
请edit您的问题显示what you have tried so far。您应该包含您遇到问题的代码的minimal reproducible example,然后我们可以尝试帮助解决具体问题。您还应该阅读How to Ask。
标签: c# c++ windows winapi credential-providers