none
Programové spuštění RemoteApp

    Dotaz

  • Dobrý den,

    řeším následující problém: Můj náročný šéf mi dal za úkol přijít na to, jak by mohla naše aplikace/web uživateli po kliknutí na příslušné tlačítko pustit RemoteApp ze vzdáleného serveru tak, aby ten nemusel zadávat ani heslo do Windows, ani heslo do cílové (RemoteApp) aplikace. Ona cílová aplikace přijímá i login a heslo předaný jako spouštěcí parametr, a heslo do Windows se dá tuším také vepsat do .rdp souboru, takže cestou vytvoření .rdp souboru s daným nastavením a jeho použitím by daná operace měla jít provést, problém je že zákazníci odmítají stahovat a používat nějaké .rdp soubory, že prý "je to moc klikání", a navíc potřebuju ty loginy a hesla doplňovat dynamicky, pro každého uživatele jiné.

    První co jsem zkoušel bylo předat ty věci jako parametry pro mstsc.exe v příkazové řádce, ale mstsc.exe má povoleno jen směšně málo (těch úplně nejzákladnějších) parametrů, takže takto to dělat nejde. Přes TS Web Access to taky udělat neumím, protože předpokládám že tam bych spouštěcí parametry cílové aplikace (tj. login a heslo uživatele do cílové aplikace) mít předepsané napevno, což nemůžu mít, navíc nevím jestli bych dokázal TS Web Access nastavit tak, aby se při otevírání nabídky RemoteApp neptal na přihlašovací údaje do Windows (nevím jestli toto vůbec jde, protože mi to přijde jako velká bezpečnostní díra, vypnout to).

    Takže bych nejraději šel cestou nejakého programového/API rozhraní, nějakého .dll kterému bych předal programově všechno to nastavení které je běžně uloženo v .rdp souboru, a on mi podle něj spustil tu RemoteApp. Bohužel takový nástroj/.dll nejsem schopen najít, jediné na co narážím je použití mstscax.dll, což jak jsem pochopil je ActiveX komponenta pro vložení do desktopové aplikace, která mi udělá "RemoteApp vloženou do mého formuláře". Což já nechci, chci aby ta RemoteApp běžela normálně samostatně, jako po spuštění .rdp souboru, hezky sama ve svém okně, ve vlastním procesu, s vlastní záložkou na liště.

    No a posledním problémem pak je otázka toho, zda je vůbec možné aby webová stránka člověku co si ji prohlíží spustila vzdálenou aplikaci přímo z jeho počítače, kde má puštěný ten web-browser, to taky netuším, jestli to zabezpečení windows vůbec povoluje.

    Může mě prosím někdo inspirovat jak na to? Nějak mi poradit zda to vůbec jde udělat, případně jak?

    Díky předem za odpovědi.
    pondělí 3. srpna 2009 12:20

Odpovědi

  • Ahoj, ten ClickOnce myslím není špatný nápad. Využijete tím infrastrukturu v .net a pluginy pro jiné prohlížeče než IE (firefox). Nebál bych se příliš že to nebude podporováno v IE9 ClickOnce je podporována a bude mít další verze. Třeba Chrome je taky instalovaný pomocí clickonce..
    Výhoda toho řešení použít clickonce je v tom, že odpadá otevření nějakého staženého souboru, v IE i ve FF je to pomocí pluginů, takže se spustí přímo hned po stažení instalace s aplikací..
    Dokonce to vyřeší tvůj problém s tím, že jednou chceš pouštět aplikaci vzdáleně (to bych zkusil spustit ten předpřipravený rdp), nebo lokálně.
    Při lokálním spuštění to nebude problém (clickonce pustí přímo aplikaci), ale vzdáleně na serveru se musí ještě řešit licence pro současný přístup nějakého počtu uživatelů na Remote desktop (a nebo na cpu)
    Ještě asi záleží jakým způsobem pro uživatele získáváš jméno a heslo, z AD/lokálu získáš jen login, takže nejlepší by bylo mít ještě WS která by vracela předdefinovaná hesla uživatelů do aplikace na základě loginu. To by zjišťovala ta clickonce app.
    Ještě zůstává problém s tím, jak doručit nového trusted root na cílové počítače, to by se muselo bohužel nainstalovat předem.

    Jiná možnost než clickonce je nainstalovat na cílové počítače nějaký program asociovaný z příponou, případně ještě lépe jako plugin pro IE (pro FF by to šlo taky) a ten spouštět místo clickonce aplikace.


    M
    středa 5. srpna 2009 19:22

Všechny reakce

  • Zdravím,

    to, co se po Vás chce je dost brutální, ale jedna cesta, která mě napadla je použít ClickOnce, pokud teda je na těch uživatelských strojích aspoň .NET 2.0. ClickOnce aplikaci schováte za "tlačítko" na web stránce a tato aplikace by "mohla spustit" další proces nebo nachystá ten rdp soubor, pokud bude dostatečně důvěryhodná pro tu stanici.

    Zásadní problém tohoto "nápadu" vidím v bezpečnostních problémech do budoucna. Stejně se u klientů musí nastavit Váš server mezi důvěryhodné, správně nastavit že browser může dělat i věci, které běžně nesmí no a na závěr to dorazí možnost, že klient nebude mít IE.... A kdo ví, co přinese IE 9...

    Tož asi tak
    úterý 4. srpna 2009 13:42
  • Ahoj, ten ClickOnce myslím není špatný nápad. Využijete tím infrastrukturu v .net a pluginy pro jiné prohlížeče než IE (firefox). Nebál bych se příliš že to nebude podporováno v IE9 ClickOnce je podporována a bude mít další verze. Třeba Chrome je taky instalovaný pomocí clickonce..
    Výhoda toho řešení použít clickonce je v tom, že odpadá otevření nějakého staženého souboru, v IE i ve FF je to pomocí pluginů, takže se spustí přímo hned po stažení instalace s aplikací..
    Dokonce to vyřeší tvůj problém s tím, že jednou chceš pouštět aplikaci vzdáleně (to bych zkusil spustit ten předpřipravený rdp), nebo lokálně.
    Při lokálním spuštění to nebude problém (clickonce pustí přímo aplikaci), ale vzdáleně na serveru se musí ještě řešit licence pro současný přístup nějakého počtu uživatelů na Remote desktop (a nebo na cpu)
    Ještě asi záleží jakým způsobem pro uživatele získáváš jméno a heslo, z AD/lokálu získáš jen login, takže nejlepší by bylo mít ještě WS která by vracela předdefinovaná hesla uživatelů do aplikace na základě loginu. To by zjišťovala ta clickonce app.
    Ještě zůstává problém s tím, jak doručit nového trusted root na cílové počítače, to by se muselo bohužel nainstalovat předem.

    Jiná možnost než clickonce je nainstalovat na cílové počítače nějaký program asociovaný z příponou, případně ještě lépe jako plugin pro IE (pro FF by to šlo taky) a ten spouštět místo clickonce aplikace.


    M
    středa 5. srpna 2009 19:22