RDP会话凭据验证

时间:2014-11-28 11:28:11

标签: c# events rdp

我需要一个设置用户名和解决方案的解决方案我的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();
    }

1 个答案:

答案 0 :(得分:0)

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

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

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