c# - 来自 C# 的 Windows 模拟

标签 c# windows impersonation

一个以 LocalSystem 运行的 C# 程序如何临时冒充另一个用户的登录身份?粗略地说,我有一个 Windows 服务,我想作为 LocalSystem 运行,但有时会模拟用户 XYZ(当使用 Windows 集成安全连接到数据库时)。

最重要的是:有没有办法在不知道其他用户密码的情况下执行此操作?

注意:如果密码是强制性的,是否有推荐的安全存储密码的策略(c# 和/或 vbscript)。

最佳答案

这是可能的,尽管它需要您编写大量代码。参见 NtCreateTokenCreateToken .您需要 SeCreateTokenPrivilege,尽管这不会成为问题,因为您在 NT AUTHORITY\SYSTEM 下运行。然后,您可以使用创建的 token 在线程内模拟。

关于c# - 来自 C# 的 Windows 模拟,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/559719/

相关文章:

c# - 将文件从一个位置复制到另一个位置

c# - 在 WinRT WebView 控件中显示图像

c++ - 有没有办法在 Windows 的 basic_iostream 上获得非锁定流插入/提取?

windows - 单击按钮时如何打开 Windows 资源管理器?

php - 在 Symfony 2 中用户切换(模拟)后重定向

c# - 如何以编程方式将项目添加到 WP7 中的 PanoramaItem

c# - 使用单例 PixelShader 应该是最佳实践吗?

c++ - 如何删除控制台窗口 C++ 中的滚动条

c# - 模拟 Windows 用户

c# - 访问共享网络驱动器时需要模拟