gpt4 book ai didi

c# - WindowsIdentity 构造函数使用来自 LogonUser 的 token 抛出异常

转载 作者:行者123 更新时间:2023-11-30 22:40:37 27 4
gpt4 key购买 nike

我在命令行应用程序中运行,该应用程序使用 LogonUser 对用户进行身份验证。该函数正确返回并失败正确(无效的用户名或密码)。当我将 LogonUser 函数返回的 token 传递给 WindowsIdentity(IntPtr) 构造函数时,我收到错误:

Invalid token for impersonation - it cannot be duplicated.

在使用 DuplicateToken 函数将 token 传递给 WindowsIdentity 构造函数之前,我尝试复制 token 。这也失败了。我打开了 UAC 并正在运行 Windows 7 x64。以管理员和非管理员身份运行会产生相同的结果。

一些附加信息:

  • 登录域
  • 使用 LOGON32_LOGON_INTERACTIVE
  • 使用 LOGON32_PROVIDER_DEFAULT

最佳答案

以下是否对您有用,或者是否重现了问题?

[DllImport("advapi32.dll", SetLastError = true)]
private static extern bool LogonUser(string lpszUsername, string lpszDomain, string lpszPassword, int dwLogonType, int dwLogonProvider, out IntPtr phToken);

// ...

IntPtr token;
LogonUser(Username, Domain, Password, 8, 0, out token)

WindowsIdentity wi;
wi = new WindowsIdentity(token);

关于c# - WindowsIdentity 构造函数使用来自 LogonUser 的 token 抛出异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5106349/

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