OK... Je peux répondre...
Disclaimer : Je viens d'avoir une journée de plus de 18 heures (encore) Je suis vieux et distrait Je ne sais pas écrire J'ai une courte capacité d'attention, alors je ferais mieux de répondre rapidement :-)
Pregunta:
Est-il possible de changer le principal du fil de discussion pour un utilisateur sans compte sur la machine locale ?
Réponse :
Oui, vous pouvez modifier le principal d'un fil même si les informations d'identification que vous utilisez ne sont pas définies localement ou se trouvent en dehors de la "forêt".
Je viens de rencontrer ce problème en essayant de me connecter à un serveur SQL avec une authentification NTLM à partir d'un service. Cet appel utilise les informations d'identification associées au processus, ce qui signifie que vous devez soit un compte local, soit un compte de domaine pour vous authentifier avant de pouvoir vous faire passer pour un autre. Bla, bla, bla...
Mais...
L'appel de LogonUser(..) avec l'attribut ????_NEW_CREDENTIALS renvoie un jeton de sécurité sans essayer d'authentifier les informations d'identification. Merveilleux. Il n'est pas nécessaire de définir le compte dans la "forêt". Une fois que vous avez le jeton, vous pouvez appeler DuplicateToken() avec l'option d'activer l'usurpation d'identité pour obtenir un nouveau jeton. Appelez maintenant SetThreadToken( NULL, token ) ; (Cela pourrait être &token ?) Un appel à ImpersonateLoggedonUser( token ) ; pourrait être nécessaire, mais je ne le pense pas. Cherchez
Faites ce que vous devez faire
Appelez RevertToSelf() si vous avez appelé ImpersonateLoggedonUser() puis SetThreadToken( NULL, NULL ) ; (je pense... cherchez), et ensuite CloseHandle() sur les handles créés...
Je ne vous promets rien, mais cela a marché pour moi... Tout ceci n'est que le fruit de mon imagination (comme mes cheveux) et je ne sais pas épeler ! !!
8 votes
Bien que je ne puisse pas vous donner une réponse utile, je peux vous fournir une anti-réponse L'usurpation d'identité et la création d'un processus comme le propose Marc ne fonctionneront pas lorsque le serveur et le client ne sont pas dans le même domaine, à moins qu'il n'y ait une confiance entre les deux domaines. S'il y a une confiance, je pense que cela fonctionnera. J'aurais bien répondu en tant que commentaire à celui de Marc mais je n'ai pas assez de réputation pour commenter :-/.
0 votes
Related - stackoverflow.com/questions/17786037/