执行与主程序具有相同权限的线程?

时间:2014-01-30 17:09:37

标签: windows multithreading delphi

我的应用程序中有一个执行LDAP查询的表单。但是,由于每个结果项都需要一些处理,我决定在一个单独的线程中处理每个项目。唉,我很快意识到处理(调用COM对象中的某些方法)拒绝工作 - 因为(或“或许”是一个更好的词)线程不会在同一个用户帐户下产生。 COM部分工作正常,但如果作为程序的一部分执行将返回正确信息的代码 - 在线程中执行时不返回正确的信息。当我用Google搜索时,我发现了指向安全描述符和令牌的信息。我必须承认,我很少有经验。

任何人都可以告诉我如何让TThread类作为启动并运行我的主程序的用户执行吗?

我们使用Delphi XE3。该程序通过Citrix / AD在Windows 7上执行。

非常感谢你的帮助

更新:**原来这是一个COM问题而不是线程问题。 COM的用户名参数预计为UTF8。该线程现在正常工作。

感谢大家分享他们的知识!

1 个答案:

答案 0 :(得分:4)

你的理解是错误的。线程DOES在与其父进程相同的用户帐户和访问权限中运行。它需要额外的代码(模仿等)才能改变这种行为。所以其他事情正在发生。你需要继续调查。如果您需要帮助,则需要显示实际代码。