2009-11-19 31 views
5

Tôi muốn tạo một ứng dụng web tương tự như TS Web Access, nơi tôi có thể tạo các tệp rdp khi đang chạy cho Ứng dụng từ xa được định cấu hình trên máy chủ. Bất kỳ ý tưởng??Tạo tệp RDP khi đang bay

Trả lời

1

tốt Sau khi nhìn vào một tập tin 'rdp' đây là các nội dung:

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: 

Chỉ cần tạo mà là một chuỗi, có vẻ đơn giản.

ps Tôi không biết tham số 'winposstr' là gì ...

+0

này là hoàn toàn tốt đẹp, nhưng RemoteApps tôi được chữ ký số với một giấy chứng nhận, có thêm 2 thông số bổ sung trong hồ sơ rdp tôi: 1. signscope: s 2. chữ ký: s Làm thế nào tôi có thể tạo ra giá trị cho các thông số , chúng đang sử dụng hàm băm SHA1 ... ??? –

+0

Tôi không biết những gì đang diễn ra với các chứng chỉ này. sao bạn không thể tạo RDP 'ứng dụng từ xa' hợp lệ và sau đó sao chép sig đó? hoặc là sig khác nhau mỗi lần? – Darknight

+0

Chữ ký giống nhau mọi lúc, nhưng i hv để mở khác biệt. ứng dụng trên các nút khác và chữ ký phụ thuộc vào tên chương trình ứng dụng từ xa, vì vậy tôi phải thay đổi chữ ký khi đang di chuyển.Mẫu nội dung tập tin rdp: –

2

Chúng tôi phải làm điều này chính xác.

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 

}

Hãy nhận biết rằng rằng RDPSign.exe là khác nhau trên mỗi phiên bản của cửa sổ. Bạn sẽ thấy rằng một phiên bản cũ của tiện ích sẽ bỏ qua các cài đặt mới hơn từ chữ ký.

+0

Tôi đã phải sử dụng tài khoản nâng cao cho ứng dụng bản sắc hồ bơi để thực hiện công việc này. Như các bài viết khác đã đề xuất, tôi có thể sẽ di chuyển mã này đến một dịch vụ trên máy có đặc quyền nâng cao thay vì vĩnh viễn thay đổi nhận dạng hồ bơi ứng dụng. – Jason

Các vấn đề liên quan