Как вызвать функцию OpenTokenByLogonId? - PullRequest
0 голосов
/ 21 марта 2011

Я ДЕЙСТВИТЕЛЬНО пытаюсь найти способ вызвать функцию OpenTokenByLogonId (), и я довольно застрял. Более того, я нигде не могу найти примеры этого!

Из MSDN указатель на OpenTokenByLoginID () можно найти в таблице функций LSA_SECPKG_FUNCTION_TABLE, полученной из функции SpInitialize ().

указатель на функцию SpInitialize (), полученную от функции SpLsaModeInitialize (), реализованной в нескольких библиотеках DLL в соответствии с тем, что я хочу сделать.

Итак, я искал экспорт SpLsaModeInitialize () в windows \ system32 \ и нашел несколько DLL. Из них я решил использовать Kerberos.dll. Я должен сказать, что я выбрал эту DLL над другими просто из-за ее названия - я не очень понимаю, в чем различия (я считаю, что это разные методы аутентификации, но я действительно не знаю).

Итак, я получил указатель на SpLsaModeInitialize ():

#include <Windows.h>
#include <Sspi.h>
#include <Ntsecapi.h>
#include <Ntsecpkg.h>

HMODULE hdll_kerberos = ::LoadLibrary(L"kerberos.dll");

SpLsaModeInitializeFn SpLsaModeInitialize = (SpLsaModeInitializeFn)::GetProcAddress(hdll_kerberos, "SpLsaModeInitialize");

Вызывается функция:

ULONG pckver = 0;
PSECPKG_FUNCTION_TABLE pck_tbl = 0;
ULONG pcTables = 0;

NTSTATUS res=0;
if(SpLsaModeInitialize(SECPKG_INTERFACE_VERSION, &pckver, &pck_tbl, &pcTables) != 0){ // error }

Теперь я могу вызвать SpInitialize, используя pck_tbl-> Initialize.

НО (и вот проблема) Я не могу найти путь к параметрам для функции!

NTSTATUS SpInitialize(__in  ULONG_PTR PackageId, __in  PSECPKG_PARAMETERS Parameters, __in  PLSA_SECPKG_FUNCTION_TABLE FunctionTable);

Как мне найти packageID, не говоря уже о его SECPKG_PARAMETERS? Я смотрел везде, но я думаю, что я что-то упускаю или пропускаю ...

Спасибо за вашу помощь !!!

1 Ответ

0 голосов
/ 06 марта 2014

Как сказал Люк, эта функция не вызывается, но когда кто-то реализует SSP / AP для LSA, он может реализовать эту функцию.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...