WTSQueryUserToken->DuplicateTokenEx->CreateProcessAsUser

Discussion in 'WASM.WIN32' started by djmans, Jan 18, 2010.

  1. djmans

    djmans New Member

    Blog Posts:
    0
    Joined:
    Dec 27, 2006
    Messages:
    312
    В большинстве примеров указаная выше схема для запуска процессов. Я не могу понять одного момента, сто раз перечитал внимательно описание этих функций, зачем нужен вызов DuplicateTokenEx? Если WTSQueryUserToken возращает "obtains the primary access token", и CreateProcessAsUserW принимает "A handle to the primary token that represents a user. The handle must have the TOKEN_QUERY, TOKEN_DUPLICATE, and TOKEN_ASSIGN_PRIMARY access rights". Нафига нужна DuplicateTokenEx? Все работет без нее прекрасно...
     
  2. Sol_Ksacap

    Sol_Ksacap Миша

    Blog Posts:
    0
    Joined:
    Mar 6, 2008
    Messages:
    623
    Возможно, вызов DuplicateTokenEx() необходим для точной спецификации маски доступа, поскольку WTSQueryUserToken(), как можно видеть, не позволяет её задать (в описании функции мы не заметили явного указания на то, что выдаётся хендл с полными правами, и, следовательно, формально на это нельзя полагаться). С другой стороны, для дупликации необходимо иметь в маске доступа существующего хендла TOKEN_DUPLICATE, на что тоже рассчитывать нельзя. Если в примерах используется схема "попробовать дупликацию, если не получилось – воспользовать оригинальный хендл", то всё сходится, если же нет, то данная схема лишь следствие кочующего из примера в пример кода.
     
  3. djmans

    djmans New Member

    Blog Posts:
    0
    Joined:
    Dec 27, 2006
    Messages:
    312
    Ну вот судя по "WTSQueryUserToken is intended for highly trusted services." и "must be running within the context of the LocalSystem account", с связи с такими запросами, предпологаю,что она юзает копию полученую от процесса логина юзера.

    Но вот это чудо меня ставит в полный тупик http://msdn.microsoft.com/en-us/library/ms802203.aspx

    "WTSQueryUserToken (WTSGetActiveConsoleSessionId(), &hImpersonationToken)" и коменты выше и ниже... Индуский косячекс?
     
  4. Sol_Ksacap

    Sol_Ksacap Миша

    Blog Posts:
    0
    Joined:
    Mar 6, 2008
    Messages:
    623
    Исправлено в следующем месяце :)