我需要一个设置用户名和解决方案的解决方案我的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();
}
答案 0 :(得分:0)
重要的是,似乎在使用旧的TSAC控件或新的RDPC控件连接到Server 2008 R2(包括Windows Home Server 2011)时,控件不会提供任何“失败的登录”反馈。我认为这是一个安全措施,旨在帮助防止使用这些控件进行黑客攻击和破解。
与独立的RDP客户端实用程序不同,登录失败会导致保留连接,让用户查看远程系统的登录桌面。这允许用户手动登录,但阻止程序获得有关登录失败的反馈并尝试其他用户/密码。
所以......如果您的服务器都早于Server 2008 R2,您可能仍然使用这些控件中的一个或另一个来尝试RDP连接并尝试登录,报告错误凭据上的失败。