我有两个Active Directory域,A和B.域A中的用户需要在其桌面上运行应用程序以查看和操作位于域B中的服务器上的资源。每个用户在域B中也有一个帐户。是否可以模拟每个用户的域B身份以编程方式对域B资源执行操作?
示例工作流程:
答案 0 :(得分:9)
如果您的计算机(进行模拟的计算机)是不信任您尝试模拟的用户帐户域的域的成员,则模拟将失败。任何不这么说的人,我都希望看到证据。
答案 1 :(得分:2)
我将谈论Win32 API,但我很确定你可以从.NET调用它们。检查http://pinvoke.net。
您需要调用LogonUser API来创建表示用户的域B凭据的访问令牌。
然后调用ImpersonateLoggedOnUser,传入该访问令牌。调用线程将模拟域B凭据,直到您模拟一组不同的凭据或调用RevertToSelf API。
我想不用说,为了让LogonUser调用成功,你运行的机器需要信任域B.
答案 2 :(得分:1)
查看this question,其中包含您需要的模拟问题。