2010-08-31 2 views

Antwort

2

Die Antwort ist wirklich nein, das sollten Sie nicht tun. ClickOnce-Anwendungen werden unter dem Benutzerprofil installiert und gehören nur diesem Benutzer. Sie werden nicht als All-User-Installation arbeiten.

Beachten Sie auch, dass wenn Sie auf die Datei [exe] doppelklicken (deren Speicherort sich bei jedem Update ändert), wird nicht nach Updates gesucht, die Dateien werden nicht überprüft, um sicherzugehen, dass sie Ports haben Es wurde nicht manipuliert. Mit anderen Worten, es wird nicht als ClickOnce-Anwendung ausgeführt.

Ich denke auch, die Weitergabe des Benutzernamens und des Kennworts in der Abfragezeichenfolge ist nicht ratsam, da jeder, der fiddler oder charles oder einen anderen Netzwerkverkehrs-Sniffer ausführt, die Anmeldeinformationen sehen kann.

1

Sprechen Sie über einen einmaligen Prozess oder etwas, das jedes Mal auftreten muss, wenn Ihr Code auf mehreren Computern ausgeführt wird? Denn wenn Sie eine ClickOnce-App mit erhöhten Berechtigungen einfach selbst ausführen möchten, ist das ziemlich einfach. Klicken Sie einmal auf Apps, die sich unter% LOCALAPPDATA% \ Apps \ 2.0 [ObfuscatedFolderName] befinden. Suchen Sie einfach nach Ihrem App-Ordner (der Zeitstempel sollte ausreichen), klicken Sie dann mit der rechten Maustaste auf Ihre EXE und führen Sie sie als Administrator aus.

Wenn Sie es in Code tun möchten, ist die einfachste Lösung wahrscheinlich, eine Shell-Launcer-Anwendung um Ihren Code zu erstellen, der erhöhte Berechtigungen im Code anfordert. Here is such an example.

+0

Wissen Sie, ob sich der Standort der App nach einer automatischen Aktualisierung ändern kann? – Vitalik

+0

Was ich wirklich versuche zu tun, ist ein Klick-einmal unter Domain-Account von einem Computer, der nicht Teil der Domain (aber im selben Netzwerk) ist. – Vitalik

+0

Ich glaube nicht, dass Sie sich darauf verlassen können, dass der Pfad konsistent bleibt, nein. – Serapth

18

Dies ist tatsächlich möglich, Sie müssen es nur in zwei Schritten tun. Zuerst müssen Sie Clickonce (dfsvc.exe) als Benutzer starten Sie zu imitieren versuchen, und dann können Sie die implementierende Anwendung starten rundll32, so etwas wie dies mit:

(in der Befehlszeile)

1. - Klicken Sie einmal:

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

2.- Einführung App:

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

Beachten Sie, dass Sie nur einmal dfsvc.exe wenn y ausgeführt werden müssen Sie müssen mehrere Apps starten und es wird nach einer Weile wieder verschwinden, sobald Sie alle Ihre vervielfältigten einmal aufgerufenen Anwendungen geschlossen haben.

+1

Diese Antwort hat mein Leben gerettet! Ich konnte den beschriebenen Trick verwenden, um eine ClickOnce-Anwendung zwischen zwei nicht vertrauenswürdigen Domänen mithilfe der NTLM-Authentifizierung zu öffnen. –

+0

@Santo zweimal "Benutzer"? – turbanoff

+0

@turbanoff Ja, du musst es zweimal machen, sonst wird der zweite die clickonce App im Kontext des angemeldeten Benutzers starten. Hast du das gefragt? – Alan

Verwandte Themen