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();
    }

RDP 会话凭据验证

重要的是,似乎在使用旧的 TSAC 控件或新的 RDPC 控件连接到 Server 2008 R2(包括 Windows Home Server 2011)时,该控件不提供任何"登录失败"反馈。我认为这是一项安全措施,旨在帮助防止使用这些控件进行黑客攻击和破解。

与独立的 RDP 客户端实用程序不同,失败的登录会导致连接被保留,使用户查看远程系统的登录桌面。这允许用户手动登录,但会阻止程序获取有关登录失败的反馈并尝试其他用户/密码。

因此,如果您的服务器都早于 Server 2008 R2,您可能仍使用这些控件中的一个或另一个来尝试 RDP 连接并尝试登录,并报告凭据错误时失败。