¿Es posible que un servicio C# Windows que se ejecute como Local System o Local Service se haga pasar por otro usuario sin necesidad de una contraseña para ese usuario?¿Es posible que un servicio de Windows suplante a un usuario sin una contraseña?
¿Cómo se haría esto?
Nota: Mi motivación para esto es poder ejecutar consultas WMI específicas del usuario en un servicio. Las llamadas de WMI que realizo (a la API WMI de OfflineFiles) son sensibles al usuario, y solo funcionan cuando ejecuto mi servicio como el usuario cuyos datos deseo consultar. No quiero que los usuarios tengan que ingresar sus nombres de usuario y contraseñas al instalar el servicio, por lo que me gustaría simplemente ejecutar el servicio como Sistema Local o algo así, y suplantar al usuario que me importa.
Sospecho que tendrás más suerte si explicas qué quieres que haga el servicio una vez que haya imitado a un usuario. AFAIK, lo que está pidiendo no es posible sin almacenar las credenciales (lo que significa que el usuario ingresa una contraseña en algún momento) –
@ChrisShain, he actualizado la pregunta tal como sugirió. – Eric
Consulte las respuestas a esta pregunta: http://stackoverflow.com/questions/559719/windows-impersonation-from-c-sharp –