使用备用UPN后缀注入用户帐户

问题描述 投票:0回答:1

我们有一个域boo.com,也有人定义了一个替代的UPN后缀bc。有一个创建为foo @bc的帐户。我需要模拟该帐户才能连接到SQL Server。

这是我的工作:

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

LogonUser( 
    "foo",//foo@bc
    "boo.com",//"@bc"
     "Password",
     (int)LogonType.LOGON32_LOGON_INTERACTIVE,//(int)LogonType.LOGON32_LOGON_SERVICE,//(int)LogonType.LOGON32_LOGON_NEW_CREDENTIALS,//(int)LogonType.LOGON32_LOGON_NETWORK,//
     (int)LogonProvider.LOGON32_PROVIDER_DEFAULT,//(int)LogonProvider.LOGON32_PROVIDER_WINNT50,//
     ref m_Token);
...

模仿似乎可以正常工作-LogonUser(...)成功,但是我的脚本没有适当的访问权限。根据参数的组合,我可以得到

System.IO.FileLoadException:文件名:'System.Data,...

在Sysinternals Process Monitor中,我可以看到“ BAD IMPERSONATION”错误。

或者,如果我使用LogonType和LogonProvider,则>]

System.Data.SqlClient.SqlException:'登录失败。该登录名来自不受信任的域,不能与Windows身份验证一起使用。'

是否有任何方法可以模拟使用备用UPN后缀定义的AD帐户?

哦,如果我使用“ foo”帐户运行,则一切正常,这意味着foo具有所需的所有访问权限。不幸的是,我需要从另一个服务帐户运行。

谢谢!!

我们有一个域名boo.com,也有人定义了一个替代的UPN后缀bc。有一个创建为foo @bc的帐户。我需要模拟该帐户才能连接到SQL Server。这就是我的工作:...

c# .net impersonation winlogon upn
1个回答
0
投票

通过反复试验,这对我有用:

© www.soinside.com 2019 - 2024. All rights reserved.