Как использовать шлюз служб терминалов с элементом управления ActiveX IMsRdpClient6?

Я размещаю элемент управления ActiveX IMsRdpClient6 в своем приложении WinForms для подключения к удаленным компьютерам.

Я настроил машину шлюза служб терминалов и могу успешно ее использовать.

Я хочу, чтобы мой элемент ActiveX использовал этот шлюз. Я установил параметры шлюза, но соединение не устанавливается без ошибок, которые я вижу. Вот код, который я использую:

        MSTSCLib6.IMsRdpClient6 client6 = RdpClient.GetOcx() as MSTSCLib6.IMsRdpClient6;            

        if (client6 != null)
        {
            MSTSCLib6.IMsRdpClientTransportSettings2 transport = client6.TransportSettings2;

            if (Convert.ToBoolean(transport.GatewayIsSupported) == true)
            {
                client6.TransportSettings.GatewayHostname = "mygateway";
                client6.TransportSettings.GatewayUsageMethod = 2;

                client6.TransportSettings.GatewayCredsSource = 0;
                client6.TransportSettings.GatewayUserSelectedCredsSource = 0;
                client6.TransportSettings2.GatewayDomain = "mydomain";
                client6.TransportSettings2.GatewayPassword = "mypassword";
                client6.TransportSettings2.GatewayUsername = "myusername";
            }
        }

3 ответа

Решение

Ответом на это было опустить GatewayUserSelectedCredsSource и включить GatewayProfileUsageMethod = 1;

        MSTSCLib6.IMsRdpClient6 client6 = RdpClient.GetOcx() as MSTSCLib6.IMsRdpClient6;            

        if (client6 != null)
        {
            MSTSCLib6.IMsRdpClientTransportSettings2 transport = client6.TransportSettings2;

            if (Convert.ToBoolean(transport.GatewayIsSupported) == true)
            {
                client6.TransportSettings.GatewayHostname = "mygateway";
                client6.TransportSettings.GatewayUsageMethod = 1;

                client6.TransportSettings.GatewayCredsSource = 0;
                client6.TransportSettings.GatewayProfileUsageMethod = 1;
                client6.TransportSettings2.GatewayDomain = "mydomain";
                client6.TransportSettings2.GatewayPassword = "mypassword";
                client6.TransportSettings2.GatewayUsername = "myusername";
            }
        }

Возможно ли это сделать с помощью ActiveX, встроенного в веб-страницу?

Просто попытался добавить этот код и получил поле недопустимой ошибки. Я предполагаю, что это как-то связано с не установкой имени сервера, но это не установлено в вашем примере. Можете ли вы объяснить, как обойти это.

С уважением Андрей. Разместим код при необходимости.

Другие вопросы по тегам