2010-08-31 8 views

risposta

2

La risposta è davvero no, non dovresti farlo. Le applicazioni ClickUnce vengono installate sotto il profilo utente e appartengono solo a quell'utente. Non funzionerà e non funzionerà come un'installazione per tutti gli utenti.

Si noti inoltre che se si fa doppio clic sul file [exe] (la cui posizione cambia ogni volta che vi è un aggiornamento), non cercherà aggiornamenti, non controllerà i file per assicurarsi che essi sono stati manomessi In altre parole, non verrà eseguito come applicazione ClickOnce.

Penso anche che passare il nome utente e la password nella stringa di query è sconsigliato perché chiunque esegua il violinista o charles o qualsiasi altro sniffer di traffico di rete sarà in grado di vedere le credenziali.

1

Stai parlando di un processo one off o qualcosa che deve accadere ogni volta che il codice viene eseguito su più computer? Perché se vuoi semplicemente eseguire personalmente un'app ClickOnce con autorizzazioni elevate, è piuttosto semplice. Fai clic una volta le app risiedono su% LOCALAPPDATA% \ Apps \ 2.0 [ObfuscatedFolderName]. Basta trovare la cartella dell'app (il timestamp dovrebbe essere abbastanza informazioni), quindi fare clic con il tasto destro sul file EXE ed eseguire come amministratore.

Se si vuole farlo in codice, la soluzione più semplice è probabilmente quella di creare un'applicazione shell launcer attorno al codice, che richiede autorizzazioni elevate nel codice. Here is such an example.

+0

Sapete se la posizione dell'app può cambiare dopo un aggiornamento automatico? – Vitalik

+0

Quello che sto davvero cercando di fare è eseguire un click-up sotto l'account di dominio da un computer che non fa parte del dominio (ma sulla stessa rete). – Vitalik

+0

Non credo che tu possa fare affidamento sul percorso rimanendo coerente, no. – Serapth

18

Questo è effettivamente possibile, devi solo farlo in due passaggi. In primo luogo è necessario lanciare ClickOnce (dfsvc.exe) come l'utente che si sta tentando di impersonare e quindi è possibile avviare l'applicazione Distribuire utilizzando rundll32, qualcosa di simile:

(Dalla riga di comando)

1. - Fare clic una volta:

runas /user:domain\user "c:\Windows\Microsoft.NET\Framework\v4.0.30319\dfsvc.exe" 

2.- lancio app:

runas /user:domain\user "rundll32 c:\Windows\System32\dfshim.dll,ShOpenVerbApplication http://someurl.com/tool.application" 

noti che è solo necessario eseguire Dfsvc.exe una volta se y È necessario avviare più app e scomparirà dopo un po 'una volta che si chiuderà tutto il tuo impersonato clic una volta le applicazioni.

+1

Questa risposta mi ha salvato la vita! Sono stato in grado di utilizzare il trucco descritto per aprire un'applicazione ClickOnce tra due domini non trusted utilizzando l'autenticazione NTLM. –

+0

@Santo due volte 'utente'? – turbanoff

+0

@turbanoff si è necessario farlo due volte, altrimenti il ​​secondo avvierà l'app clickonce sotto il contesto dell'utente connesso. È questo quello che stavi chiedendo? – Alan

Problemi correlati