RDP 会话凭据验证
本文关键字:验证 会话 RDP | 更新日期: 2023-09-27 18:32:18
我需要一种解决方案来为我的RDP客户端应用程序设置用户名和密码验证。目标是在凭据(用户名或密码)不正确时关闭连接。
当其中一个凭据不正确时,如何以编程方式验证会话?
try
{
rdp.Server = txtServer.Text;
rdp.UserName = txtUserName.Text;
IMsTscNonScriptable secured = (IMsTscNonScriptable)rdp.GetOcx();
secured.ClearTextPassword = txtPassword.Text;
rdp.OnLoginComplete += RdpOnOnLoginComplete;
rdp.OnLogonError += rdp_OnLogonError;
rdp.Connect();
}
catch (Exception Ex)
{
MessageBox.Show("Error Connecting", "Error connecting to remote desktop " + txtServer.Text + " Error: " + Ex.Message,MessageBoxButtons.OK, MessageBoxIcon.Error);
}
事件
void rdp_OnLogonError(object sender, AxMSTSCLib.IMsTscAxEvents_OnLogonErrorEvent e)
{
throw new NotImplementedException();
}
private void RdpOnOnLoginComplete(object sender, EventArgs eventArgs)
{
throw new NotImplementedException();
}
重要的是,似乎在使用旧的 TSAC 控件或新的 RDPC 控件连接到 Server 2008 R2(包括 Windows Home Server 2011)时,该控件不提供任何"登录失败"反馈。我认为这是一项安全措施,旨在帮助防止使用这些控件进行黑客攻击和破解。
与独立的 RDP 客户端实用程序不同,失败的登录会导致连接被保留,使用户查看远程系统的登录桌面。这允许用户手动登录,但会阻止程序获取有关登录失败的反馈并尝试其他用户/密码。
因此,如果您的服务器都早于 Server 2008 R2,您可能仍使用这些控件中的一个或另一个来尝试 RDP 连接并尝试登录,并报告凭据错误时失败。