Генерация RDP-файла на лету

Я хочу создать веб-приложение, похожее на TS Web Access, где я могу создавать файлы rdp на лету для удаленных приложений, настроенных на сервере. Есть идеи??


person Gaurav Arya    schedule 19.11.2009    source источник


Ответы (2)


Мы должны были сделать именно это.

private void InvokeRDPSign(String fileName, String certificateThumbPrint)
{
    Process signingProcess = new Process();
    signingProcess.StartInfo.FileName = @"rdpsign.exe";

    String arguments = String.Format("/sha1 {0} {1}", certificateThumbPrint, fileName);
    signingProcess.StartInfo.Arguments = arguments;
    signingProcess.StartInfo.UseShellExecute = false;
    signingProcess.StartInfo.RedirectStandardOutput = true;
    signingProcess.StartInfo.WorkingDirectory = Environment.SystemDirectory;
    signingProcess.Start();

    String signingOutput = signingProcess.StandardOutput.ReadToEnd();
    signingProcess.WaitForExit();
    int exitCode = signingProcess.ExitCode;
    //TODO:  should we throw an error if the exitcode is not 0
}

Имейте в виду, что RDPsign.exe отличается в каждой версии Windows. Вы обнаружите, что более старая версия утилиты игнорирует новые настройки из подписи.

person Naraen    schedule 11.03.2011
comment
Мне пришлось использовать учетную запись с повышенными правами для удостоверения пула приложений, чтобы это работало. Как предлагалось в других сообщениях, я, вероятно, собираюсь переместить этот код в службу на компьютере с повышенными привилегиями, а не навсегда изменить идентификатор пула приложений. - person Jason; 11.02.2012

хорошо. Посмотрев на файл «rdp», это содержимое:

screen mode id:i:2
desktopwidth:i:1280
desktopheight:i:768
session bpp:i:32
winposstr:s:2,3,1430,104,2230,704
compression:i:1
keyboardhook:i:2
displayconnectionbar:i:1
disable wallpaper:i:1
disable full window drag:i:1
allow desktop composition:i:0
allow font smoothing:i:0
disable menu anims:i:1
disable themes:i:0
disable cursor setting:i:0
bitmapcachepersistenable:i:1
full address:s: [YOUR IP]
audiomode:i:0
redirectprinters:i:1
redirectcomports:i:0
redirectsmartcards:i:1
redirectclipboard:i:1
redirectposdevices:i:0
autoreconnection enabled:i:1
authentication level:i:0
prompt for credentials:i:0
negotiate security layer:i:1
remoteapplicationmode:i:0
alternate shell:s:
shell working directory:s:
gatewayhostname:s:
gatewayusagemethod:i:4
gatewaycredentialssource:i:4
gatewayprofileusagemethod:i:0
promptcredentialonce:i:1
drivestoredirect:s:

Просто создайте это как строку, кажется простым.

ps я понятия не имею, что такое параметр 'winposstr'...

person Darknight    schedule 19.11.2009
comment
это совершенно нормально, но мои удаленные приложения имеют цифровую подпись с сертификатом, который добавляет 2 дополнительных параметра в мой файл rdp: 1. signscope: s 2. подпись: s. Как я могу создать значения для этих параметров, они используют хэш SHA1. ..??? - person Gaurav Arya; 19.11.2009
comment
Я не знаю, что происходит с этими сертификатами. вы не можете создать действительное RDP «удаленное приложение», а затем скопировать этот сигнал? или сиг каждый раз разный? - person Darknight; 19.11.2009
comment
Подпись всегда одна и та же, но я хочу открыть diff. app на кнопках diff, а подпись зависит от имени программы удаленного приложения, поэтому я должен изменить подпись на лету. Пример содержимого rdp-файла: - person Gaurav Arya; 19.11.2009
comment
span monitors:i:1 запрашивать учетные данные на клиенте:i:1 remoteapplicationmode:i:1 порт сервера:i:3389 разрешать сглаживание шрифтов:i:1 promptcredentialonce:i:1 уровень аутентификации:i:0 gatewayusagemethod:i:2 gatewayprofileusagemethod :i:0 gatewaycredentialssource:i:0 полный адрес:s:LUTRONTS1 альтернативная оболочка:s:||TSClient_TS2 remoteapplicationprogram:s:||TSClient_TS2 gatewayhostname:s: remoteapplicationname:s:TSClient_TS2 remoteapplicationcmdline:s: - person Gaurav Arya; 19.11.2009
comment
signscope: s: Полный адрес, порт сервера, GatewayHostname, GatewayUsageMethod, GatewayProfileUsageMethod, GatewayCredentialsSource, PromptCredentialOnce, Alternate Shell, RemoteApplicationProgram, RemoteApplicationMode, RemoteApplicationName, RemoteApplicationCmdLine, уровень проверки подлинности, RedirectDrives, RedirectPrinters, RedirectCOMPorts, RedirectSmartCards, RedirectPOSDevices, RedirectClipboard, DevicesToRedirect, DrivesToRedirect - person Gaurav Arya; 19.11.2009
comment
Подпись: S: AQABAAEAAACVBAAAMIIEkQYJKoZIhvcNAQcCoIIEgjCCBH4CAQExCzAJBgUrDgMC GgUAMAsGCSqGSIb3DQEHAaCCAvowggL2MIIB3qADAgECAhCMel1Y / 5YAjUXCeMhU Fzi8MA0GCSqGSIb3DQEBBQUAMCQxIjAgBgNVBAMTGWx1dHJvbnRzMS5nZ24ubmFn YXJyby5jb20wHhcNMDkxMTE5MDc0NTIyWhcNMTAxMTE4MDAwMDAwWjAkMSIwIAYD VQQDExlsdXRyb250czEuZ2duLm5hZ2Fycm8uY29tMIIBIjANBgkqhkiG9w0BAQEF AAOCAQ8AMIIBCgKCAQEAn + ExkAWD10vOi0TDOyZl9XGuh6Q7qSKVTzaumgUx1S88 H3KS8wLgO6eWThGKaFzLhPhO98G6RRbtxcdcSjeP + 3RSQPNA8chbYZ5I3zhPQ8J3 D1d7fvdgWodL + ltvrnTMr0cxZWGR5xtCljwqcKhoUDHnPJQiU9g2WGhs7PqmPOFA - person Gaurav Arya; 19.11.2009
comment
QtFrHUo1hrHyawYWfqekNhVnWtyI0xxnM3rpnwile6LWJAPGPYolHc / qTV9NaLwq 7c3a4NfshM24UN7WUo / 0I4pnHbwjjyUHWxCDOQPO5nRGGmVdFh2Jwn5F + P82qLUE TvT2vJJ0tRn / TEMXZEEMOztBEONN9QtKhaRI + 2HJdwIDAQABoyQwIjALBgNVHQ8E BAMCBDAwEwYDVR0lBAwwCgYIKwYBBQUHAwEwDQYJKoZIhvcNAQEFBQADggEBAEDj cor3tOY / 4JnwNuQxOWbdV2yIW / gITWsJXpkM6X + 0XcFTKHtPjmthGphwxAniiw7D rgpBokzh / 8tRNMIZDeQej + JkgYLKO4Q + fzBhvxz4qHQqYZlSVPwBhcjrPFK88ggo JqYh2JTAttC5V969YMOVYc // OAKLoVMravaHUmlRAC6NvkHiVV + HoeDZbAQwnQaa zNpMwy1A6Mre6hQI4NsCFOaZEeJwtTuvd8RgpIdzI3oNL5Vy2dfXj9dvSu8OtrPU r2Kk34gEhC6a / owFSQOc208WJfOvX0G1TFKl8Tyx6vcgqWfohlUNDAxxd68Fl22f - person Gaurav Arya; 19.11.2009
comment
R0EANq3XNPjp4aoyn74xggFfMIIBWwIBATA4MCQxIjAgBgNVBAMTGWx1dHJvbnRz MS5nZ24ubmFnYXJyby5jb20CEIx6XVj / lgCNRcJ4yFQXOLwwCQYFKw4DAhoFADAN BgkqhkiG9w0BAQEFAASCAQAsjUwyBxFpBHFTCFKJixLIZoOb2HK0 / HU / vWNeIOfe fJ9OakxSzzHYYRZSrWKCbcl3Mp1 / La1 / D7L9vXlotPMB3qzeT5voczxLrY0J0Hly 08EALAYywbRki60brA2AKJ6Ri3ph3KUzD2aZQiV8kVZTJzqWPp20dCvL5Cl38qG6 I30ZtN1zadkgdg3vI0Ulh8IbfgNv9uQxvtGh9R55t8GRgTpexbGAx1r9ocKTSTW3 bFwds / l25ZKWrEiA1S + 4r4J8QYLnoStVZcdOPBbp9z8CFfLxFoljA8pVVFqSQb51 PWV5 + k2lqwBngp290Hoi6VL6HdXkA6eLYO8DqNuOJiFY - person Gaurav Arya; 19.11.2009
comment
winposstr может быть положением и размером окна клиента (верхняя левая точка, нижняя правая точка, ширина и высота). - person Thomas Bratt; 08.03.2012
comment
Да, похоже на это: tiredblogger.wordpress.com/2008/11/05/ - person Thomas Bratt; 08.03.2012