0

我正在尝试构建一个旨在同时执行多项任务的 C# 应用程序 [例如打开文件、打开端口、生成 Windows 服务等]。

这是我需要的:-

a) 应用程序应该能够同时运行这些任务[每个任务都通过一个单独的线程并在同一应用程序域内启动] b) 每个线程应该在单独的 Windows 用户帐户的帐户下运行 [用户名和密码将在应用程序通过存储库/表启动之前提供]

请建议在 C# 中实现这一目标的最佳方法?谢谢, 苏米特

4

2 回答 2

1

这是我的研究成果:- a) DllImport LogonUser、SetThreadToken 和 LogOffUser API b) 登录用户并获取句柄/令牌 c) 创建线程并使用 SetThreadToken 在线程上设置令牌 d) 运行/执行线程。现在,线程将执行操作,就像在其凭据由 LogonUser API 提供的用户帐户下运行一样。 e) 线程完成其工作后,调用 LogoffUser API 以使用户退出线程。

这对我有用!

但是,我很想知道我是否可以使用托管/纯 C# API 来做到这一点。

任何人?

于 2012-08-16T18:43:07.637 回答
0

尽管可以调用,但不确定是否可以在不同的用户凭据下运行不同的任务/线程,这与使用不同的用户凭据运行不同的线程不同。

Process.Start(filenameToStart, username, password, domain);

并且可以用于并行处理Parallel.Invoke

Parallel.Invoke( () => doX(), () => doY());

于 2012-07-30T21:35:52.617 回答