2009-11-19 13 views
5

पर आरडीपी फ़ाइल जेनरेट करना मैं टीएस वेब एक्सेस के समान एक वेब एप्लिकेशन बनाना चाहता हूं, जहां मैं सर्वर पर कॉन्फ़िगर किए गए दूरस्थ ऐप्स के लिए फ्लाई पर rdp फ़ाइलों को बना सकता हूं। कोई उपाय??फ्लाई

उत्तर

1

अच्छी तरह से एक 'आरडीपी' फ़ाइल को देखा करने के बाद इस सामग्री है:

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' पैरामीटर है है ...

+0

इस बिल्कुल ठीक है, लेकिन मेरे RemoteApps डिजिटल एक प्रमाण पत्र है, जो मेरी RDP फ़ाइल में 2 अतिरिक्त पैरामीटर जोड़ देता है के साथ प्रवेश किया है: 1. signscope: रों 2. हस्ताक्षर: रों मैं इन पैरामीटर के लिए मान कैसे बना सकते हैं , ये SHA1 हैश का उपयोग कर रहे हैं ... ??? –

+0

मुझे नहीं पता कि इन कर्टों के साथ क्या चल रहा है। क्या आप एक वैध 'रिमोट एप्लिकेशन' आरडीपी नहीं बना सकते हैं और फिर उस सिग की प्रतिलिपि बना सकते हैं? या हर बार अलग सिग है? – Darknight

+0

हस्ताक्षर हर समय एक ही है, लेकिन मैं diff खोलने के लिए एचवी। diff बटन पर ऐप, और हस्ताक्षर दूरस्थ ऐप प्रोग्राम नाम पर निर्भर करता है, इसलिए मैं फ्लाई पर हस्ताक्षर बदलने के लिए hv।नमूना RDP फ़ाइल सामग्री: –

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 खिड़कियों के प्रत्येक संस्करण पर अलग है कि हो सकता है। आप पाएंगे कि उपयोगिता का एक पुराना संस्करण हस्ताक्षर से नई सेटिंग्स को अनदेखा कर देगा।

+0

मुझे ऐप के लिए एक उन्नत खाता का उपयोग करना पड़ा इस काम को बनाने के लिए पूल पहचान। जैसा कि अन्य पदों ने सुझाव दिया है, मैं संभवतः ऐप पूल पहचान को स्थायी रूप से बदलने के बजाय मशीन पर एक सेवा में उन्नत विशेषाधिकारों के साथ इस सेवा को स्थानांतरित करने जा रहा हूं। – Jason

संबंधित मुद्दे