Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2002.09.02;
Скачать: CL | DM;

Вниз

Как узнать имя пользователя под которым комп вошел в сеть(домен)?   Найти похожие ветки 

 
zam ©   (2002-06-21 18:37) [0]

Можно ли вообще узнать имя под которым пользователь подключился(аутентифицировался) в домене под WinNT и подключен ли он к домену вообще. Задача в том, чтобы защита проги была основана на NT защите. Просто даже примерно не знаю как подойти к проблемме.

Подскажите ПЛИЗ !!!!!!!


 
ZZ ©   (2002-06-21 19:04) [1]

http://rsdn.ru/forum/?mid=10429


 
Song ©   (2002-06-21 19:37) [2]

GetUserName() ?


 
DeMoN-777 ©   (2002-06-22 11:07) [3]

Единая база процедур и функций для Delphi для сайта Мастера Delphi - тестовая версия



Получение текущего имени пользователя

http://delphibase.endimus.com/?action=viewfunc&topic=sysparams&index=8

С уважением.


 
GrayFox   (2002-06-22 15:22) [4]

Как получить имя домена? В то что на сайте МС, в базе знаний, мне врубиться трудно, в справке делфи такой функции нет.


 
ZZ ©   (2002-06-22 16:11) [5]

Я на всякий случай процетирую :)
//**********************************************************************
//
// FUNCTION: GetCurrentUserAndDomain - This function looks up
// the user name and domain name for the user account
// associated with the calling thread.
//
// PARAMETERS: szUser - a buffer that receives the user name
// pcchUser - the size, in characters, of szUser
// szDomain - a buffer that receives the domain name
// pcchDomain - the size, in characters, of szDomain
//
// RETURN VALUE: TRUE if the function succeeds. Otherwise, FALSE and
// GetLastError() will return the failure reason.
//
// If either of the supplied buffers are too small,
// GetLastError() will return ERROR_INSUFFICIENT_BUFFER
// and pcchUser and pcchDomain will be adjusted to
// reflect the required buffer sizes.
//
//**********************************************************************

BOOL GetCurrentUserAndDomain(PTSTR szUser, PDWORD pcchUser,
PTSTR szDomain, PDWORD pcchDomain) {

BOOL fSuccess = FALSE;
HANDLE hToken = NULL;
PTOKEN_USER ptiUser = NULL;
DWORD cbti = 0;
SID_NAME_USE snu;

__try {

// Get the calling thread"s access token.
if (!OpenThreadToken(GetCurrentThread(), TOKEN_QUERY, TRUE,
&hToken)) {

if (GetLastError() != ERROR_NO_TOKEN)
__leave;

// Retry against process token if no thread token exists.
if (!OpenProcessToken(GetCurrentProcess(), TOKEN_QUERY,
&hToken))
__leave;
}

// Obtain the size of the user information in the token.
if (GetTokenInformation(hToken, TokenUser, NULL, 0, &cbti)) {

// Call should have failed due to zero-length buffer.
__leave;

} else {

// Call should have failed due to zero-length buffer.
if (GetLastError() != ERROR_INSUFFICIENT_BUFFER)
__leave;
}

// Allocate buffer for user information in the token.
ptiUser = (PTOKEN_USER) HeapAlloc(GetProcessHeap(), 0, cbti);
if (!ptiUser)
__leave;

// Retrieve the user information from the token.
if (!GetTokenInformation(hToken, TokenUser, ptiUser, cbti, &cbti))
__leave;

// Retrieve user name and domain name based on user"s SID.
if (!LookupAccountSid(NULL, ptiUser->User.Sid, szUser, pcchUser,
szDomain, pcchDomain, &snu))
__leave;

fSuccess = TRUE;

} __finally {

// Free resources.
if (hToken)
CloseHandle(hToken);

if (ptiUser)
HeapFree(GetProcessHeap(), 0, ptiUser);
}

return fSuccess;
}


Ну и чего нет в дельфях ? Описание всех функций можно найти там-же в MSDN.


 
zam ©   (2002-06-22 22:03) [6]

Да, функция работает, но как узнать, подключен ли пользователь к домену или нет, ведь когда это просто локальный пользователь, вместо домена возвращается ися локального компа.


 
ZZ ©   (2002-06-23 04:43) [7]

zam
Ну и каким боком локальный пользователь подключен к домену?



Страницы: 1 вся ветка

Текущий архив: 2002.09.02;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.019 c
7-3653
KPY
2002-06-19 17:10
2002.09.02
Связанно ли это с Hooks?


6-3539
zam
2002-06-21 18:37
2002.09.02
Как узнать имя пользователя под которым комп вошел в сеть(домен)?


1-3411
ктото
2002-08-22 17:35
2002.09.02
form1+memo1,form2+memo2 memo1.lines=memo2.lines


1-3401
NeyroSpace
2002-08-22 14:14
2002.09.02
Хелп! НЕ ПОНИМАЮ В ЧЕМ ДЕЛО !


3-3302
CashDi
2002-08-13 09:34
2002.09.02
Получение имени пользователя IB6, FireBird