Проверка учетных данных сеанса RDP
Мне нужно решение для настройки имени пользователя и пароля для моего приложения RDP Client. Цель состоит в том, чтобы закрыть соединение, если учетные данные (имя пользователя или пароль) неверны.
Как программно проверить сеанс, если один из учетных данных неверен?
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 ответ
Важно отметить, что, похоже, что при использовании старого элемента управления TSAC или нового элемента управления RDPC для подключения к Server 2008 R2 (включая Windows Home Server 2011) этот элемент управления не обеспечивает никакой обратной связи "неудачный вход в систему". Я предполагаю, что это была мера безопасности, предназначенная для предотвращения взлома и взлома с использованием этих элементов управления.
В отличие от автономной служебной программы RDP Client, неудачный вход в систему приводит к тому, что соединение сохраняется, и пользователь смотрит на рабочий стол для входа в удаленную систему. Это позволяет пользователю войти в систему вручную, но не позволяет программе получить отзыв о сбое входа в систему и попытаться ввести другого пользователя / пароль.
Итак... если все ваши серверы более ранние, чем Server 2008 R2, вы все равно можете использовать один или другой из этих элементов управления для попытки подключения RDP и входа в систему, сообщая об ошибке на неверных учетных данных.