gpt4 book ai didi

c# - 如何正确使用 LogonUser 从工作组客户端模拟域用户

转载 作者:IT王子 更新时间:2023-10-29 03:57:23 25 4
gpt4 key购买 nike

ASP.NET: Impersonate against a domain on VMWare

这个问题是我问的,但是答案没有提供_token是如何派生的细节。它似乎只使用 WindowsIdentity.GetCurrent().Token 所以没有模拟发生。

Can I impersonate a user on a different Active Directory domain in .NET?

下一个问题的答案相互矛盾,接受的答案带有评论“我开始怀疑我的问题出在其他地方。”没有帮助。

LogonUser works only for my domain

下一个问题似乎暗示这是不可能的,但它涉及 2 个域,所以我不确定它是否相关。

我真正的问题是:

  • 这可能吗?如果可能的话,
  • 怎么做?我哪里出错了?

到目前为止,我尝试过的是使用 http://msdn.microsoft.com/en-us/library/chf6fbt4%28v=VS.80%29.aspx 中的代码

bool returnValue = LogonUser(user, domain, password,
LOGON32_LOGON_NETWORK, LOGON32_PROVIDER_DEFAULT,
ref tokenHandle);
// after this point, returnValue = false

Win32错误是

Logon failure: unknown user name or bad password

最佳答案

很少有帖子建议使用 LOGON_TYPE_NEW_CREDENTIALS 而不是 LOGON_TYPE_NETWORKLOGON_TYPE_INTERACTIVE。我有一个模拟问题,一台机器连接到一个域,而另一台机器没有,这解决了它。this post 中的最后一个代码片段表明模拟穿越森林确实有效,但它并没有具体说明有关建立信任的任何内容。所以这可能值得一试:

const int LOGON_TYPE_NEW_CREDENTIALS = 9;
const int LOGON32_PROVIDER_WINNT50 = 3;
bool returnValue = LogonUser(user, domain, password,
LOGON_TYPE_NEW_CREDENTIALS, LOGON32_PROVIDER_WINNT50,
ref tokenHandle);

MSDN says LOGON_TYPE_NEW_CREDENTIALS 仅在使用 LOGON32_PROVIDER_WINNT50 时有效。

关于c# - 如何正确使用 LogonUser 从工作组客户端模拟域用户,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5023607/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com