may help you . After login, you should start the other application using ProcessStartInfo. and Process.Start() method. In case that by login you mean the user enters username and password, the you cannot depend on the second application be launched by the first one, as a malicious user can run it independently. In this case, you can forward some information in the ProcessStartInfo's arguments and use them in the second application as arguments to the Main() method. This data can be used to authenticate the user in the second application.
I hope this helps you . Use CreateProcessAsUser(), specifying user A's token so the process runs in user A's account, and user A's desktop so the process runs in user A's login session. This is how system services running in session 0 spawn processes in user sessions, for instance.
How to launch application on non-logged on user's desktop from service on Windows