2010-08-31 24 views

Respuesta

2

La respuesta es realmente no, no deberías hacer esto. Las aplicaciones ClickOnce se instalan bajo el perfil de usuario y pertenecen solo a ese usuario. No funcionarán ni funcionarán como una instalación para todo usuario.

También tenga en cuenta que si hace doble clic en el archivo [exe] (cuya ubicación cambia cada vez que hay una actualización), no buscará las actualizaciones, no revisará los archivos para asegurarse de que se han perdido ha sido manipulado. En otras palabras, no se ejecutará como una aplicación ClickOnce.

También creo que es desacertado pasar el nombre de usuario y la contraseña en la cadena de consulta porque cualquiera que ejecute fiddler o charles o cualquier otro rastreador de tráfico de red podrá ver las credenciales.

1

¿Está hablando de un proceso único o algo que debe suceder cada vez que se ejecuta su código en varias computadoras? Porque si simplemente desea ejecutar personalmente una aplicación ClickOnce con permisos elevados, es bastante simple. Haga clic una vez que las aplicaciones residan en% LOCALAPPDATA% \ Apps \ 2.0 [ObfuscatedFolderName]. Simplemente encuentre la carpeta de su aplicación (la marca de tiempo debería ser suficiente información), luego haga clic con el botón derecho en su EXE y ejecútelo como administrador.

Si desea hacerlo en código, la solución más fácil es probablemente hacer que una aplicación de iniciador de shell alrededor de su código, solicite permisos elevados en el código. Here is such an example.

+0

¿Sabes si la ubicación de la aplicación puede cambiar después de una actualización automática? – Vitalik

+0

Lo que realmente estoy tratando de hacer es ejecutar un clic una vez en la cuenta de dominio desde una computadora que no es parte del dominio (pero en la misma red). – Vitalik

+0

No creo que pueda confiar en que el camino se mantenga constante, no. – Serapth

18

Esto es realmente posible, solo tiene que hacerlo en dos pasos. En primer lugar usted necesita para poner en marcha ClickOnce (dfsvc.exe) como el usuario que está intentando hacerse pasar y entonces se puede iniciar la aplicación de despliegue utilizando rundll32, algo como esto:

(desde la línea de comandos)

1. - Un clic:

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

2.- Iniciar aplicación:

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

Tenga en cuenta que sólo tendrá que ejecutar una vez si y dfsvc.exe Debe iniciar varias aplicaciones y desaparecerá después de un tiempo una vez que cierre todas las aplicaciones de clic una vez suplantadas.

+1

¡Esta respuesta salvó mi vida! Pude utilizar el truco descrito para abrir una aplicación ClickOnce entre dos dominios que no son de confianza usando la autenticación NTLM. –

+0

@Santo dos veces 'usuario'? – turbanoff

+0

@turbanoff sí, necesita hacerlo dos veces, de lo contrario, el segundo lanzará la aplicación clickonce en el contexto del usuario conectado. ¿Es eso lo que preguntabas? – Alan

Cuestiones relacionadas