Cette source monte comment lancer des programmes en leur ajoutant des paramètres mais aussi en spécifiant l'utilisateur qui sera propriétaire du process.

Pratique pour lancer des batch en mode admin ;)

Je vous ai aussi mis un exemple d'utilisation de l'API permettant de faire afficher la boite de dialogue standard qui demande la saisie du nom d'utilisateur et du mot de passe.
Enfin, vous verrez aussi un bref aperçu de la classe SecureString.