一个以 LocalSystem 运行的 C# 程序如何临时冒充另一个用户的登录身份?粗略地说,我有一个 Windows 服务,我想作为 LocalSystem 运行,但有时会模拟用户 XYZ(当使用 Windows 集成安全连接到数据库时)。
最重要的是:有没有办法在不知道其他用户密码的情况下执行此操作?
注意:如果密码是强制性的,是否有推荐的安全存储密码的策略(c# 和/或 vbscript)。
最佳答案
这是可能的,尽管它需要您编写大量代码。参见 NtCreateToken和 CreateToken .您需要 SeCreateTokenPrivilege,尽管这不会成为问题,因为您在 NT AUTHORITY\SYSTEM 下运行。然后,您可以使用创建的 token 在线程内模拟。
关于c# - 来自 C# 的 Windows 模拟,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/559719/