Wie bekomme ich einen gültigen Benutzer-token für die CreateProcessAsUser?

Ich habe eine Anwendung, die ausgeführt wird, als normaler Benutzer und einem Dienst als lokales system ausgeführt wird. Ich möchte die Anwendung in der Lage sein zu sagen, den Dienst zu starten die Anwendung erneut, sobald der service erledigt ein paar andere Sachen. (So wird die Anwendung nicht ausgeführt werden, während der Dienst macht es "Ding".) Damit der Dienst gestartet werden kann die Anwendung als der Benutzer, der zuerst gestartet wird, es muss ein Benutzer-token. Die Anwendung sendet das token an den service, bevor es beendet wird, aber die token/handle ist ungültig, wenn der Dienst versucht, es zu benutzen. (Erste Sache, die es tut, es ist DuplicateTokenEx um ein primäres token.)

Ist ein Benutzer-token immer nur gültig in den Prozess, genannt OpenProcessToken?

Gibt es eine andere Möglichkeit dies getan werden könnte? Ich möchte nicht den user mit auf "anmelden", um die Anwendung mit logonuser. Das wäre einfach albern. Ich denke, ich könnte mit der hand über Prozess-handle für "explorer.exe" von der app auf den Dienst, der den Dienst nutzen könnte, um ein Benutzer-token, aber das würde erfordern PROZESS-DUP-Zugriff rechten. Ich bin nicht begeistert über diese Lösung, aber vielleicht ist es die Art und Weise, es zu tun?

InformationsquelleAutor Björn | 2009-04-07
Schreibe einen Kommentar