我正在尝试从 ASP.NET 项目中调用旧的 VB6 dll(没有可用的源代码)。dll 使用 Windows 身份验证连接到服务器,因此我需要以特定用户的身份调用函数,而不是现在的 NETWORKSERVICE。
这最好在调用时确定,而不是在加载时确定,因为我正在模拟远程用户,并希望这是调用函数的用户,而不是应用程序用户,而不是现在的 NETWORKSERVICE。
因此,浏览器以 USER 身份运行,连接到模拟 USER 的应用程序,以 USER 身份调用 dll,但 dll 试图以 NETWORKSERVICE 而不是 USER 身份连接到远程服务器。
是否可以让这个 dll 以 USER 身份连接到远程服务器?或者,如果没有别的,以应用程序用户身份连接?
编辑:
通过调用Impersonate()
远程用户的WindowsIdentity
. 我工作的公司有一个习惯SecurityPrincipal
,SecurityIdentity
所以我必须如何去获得它有点奇怪WindowsIdentity
(它比 更深入一点User.Identity
),但我之前成功地使用过这种方法,并且System.Security.Principal.WindowsIdentity.GetCurrent().Name
在冒充。