Я хочу создать веб-приложение, подобное TS Web Access, где я могу создавать rdp-файлы «на лету» для удаленных приложений, настроенных на сервере. Есть идеи??Создание RDP-файла на лету
ответ
хорошо Взглянув на файл «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:
Просто создать, что в строке, кажется простым.
пс Я понятия не имею, что параметр «winposstr» является ...
Мы должны были сделать это точно вещь.
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. Вы увидите, что более старая версия утилиты будет игнорировать более новые настройки из подписи.
Мне пришлось использовать повышенную учетную запись для приложения чтобы сделать эту работу. Как и другие сообщения, я, вероятно, собираюсь перенести этот код на службу на машине с повышенными привилегиями, а не на постоянное изменение идентификатора пула приложений. – Jason
это прекрасно, но мои RemoteApps цифровой подписью с сертификатом, который добавляет 2 дополнительные параметры в моем файле Rdp: 1. signscope: s 2. Подпись: s Как я могу создать значения для этих параметров , они используют SHA1 хэш ... ??? –
Я не знаю, что происходит с этими сертификатами. не можете ли вы создать действительное «удаленное приложение» RDP, а затем скопировать этот сиг? или является сигнем каждый раз? – Darknight
Подпись одинакова каждый раз, но я hv, чтобы открыть diff. приложение на кнопках diff, а подпись зависит от имени программы удаленного приложения, поэтому я хочу изменить подпись на лету.Пример содержимого RDP-файл: –