在 Windows 应用程序中模拟连接到远程机器(c#)
Posted
技术标签:
【中文标题】在 Windows 应用程序中模拟连接到远程机器(c#)【英文标题】:Impersonation for connect to remote machine in windows application(c#) 【发布时间】:2013-10-20 15:11:36 【问题描述】:我编写了一个连接到服务器(WINDOWS NT 200)并执行一些操作的代码。我没有执行操作的权限。所以,我正在使用模拟但收到错误为“未知用户名和错误密码”。用户名和密码是正确的。
我在以下链接中使用的相同代码:
http://msdn.microsoft.com/en-us/library/system.security.principal.windowsimpersonationcontext.aspx
提前致谢。
【问题讨论】:
【参考方案1】:请注意,模拟不会赋予您执行某些操作的权利和权限,它只会让您有可能模拟与当前用户不同的用户并“像以前一样”执行该用户的操作。如果您模拟的用户无权执行某项操作,您将无法以提升的权限执行操作。
也就是说,您会在 SO 上找到很多类似的场景,这些场景可能已经涵盖了您的情况。 首先,请尝试查看 this question 或 this question - 希望对您有所帮助。
【讨论】:
我问这个问题是因为......我的应用程序连接到 IBM MQ 管理器(在服务器:Windows 2000 NT 上)并将消息放入队列中。我能够连接到 MQ经理,但是当我尝试将消息放入队列时,我收到授权错误。所以,我正在尝试使用 IMPERSONATION 将消息放在队列中.....这可能吗? 老实说,我对 IBM MQ 了解不多——无论如何,通过模拟,您可以充当与本地用户不同的用户。也就是说,如果在您的服务器中,您有一个对 IBM MQ 管理器具有完全访问/特权的用户并且您知道其密码,那么您可以模拟该用户并获得其完全特权。如果有可能,请尝试在服务器本地运行您的应用程序,以您要模拟的用户身份登录,并检查您是否有相同的错误消息(以便更好地了解问题是否来自低级权限用户或客户端-服务器连接) 我有远程机器的详细信息(Windows 2000 NT,安装了 IBM MQ)IP 地址、域 [CORP 或 TXUCORP]、用户名、密码.....我在上面的链接中使用了代码。它不适合我。我的应用程序将作为客户端应用程序在windwos 7 上运行。它需要在运行时使用模拟方法连接到远程机器。 MSDN 说我们只能在本地用户上模拟用户,而不是在远程机器上。我们能做到吗?我在等你的 cmets @Spaceman以上是关于在 Windows 应用程序中模拟连接到远程机器(c#)的主要内容,如果未能解决你的问题,请参考以下文章
“无法连接到远程 VM”将 jdb 连接到 Windows 上的 android 模拟器
如何连接到远程 Windows 机器以使用 python 执行命令?
使用带有公钥和密码的 SSH 隧道通过 SQLAlchemy 连接到远程 PostgreSQL 数据库,所有这些都来自 Windows 机器