Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Login в домен [D5, D6, Win95/98, NT4, Win2k]


verman_sasa ©   (2002-07-03 13:26:00) 

Всем привет
Как узнать по введенному
UserName, Password, Domain
что юзер имеет право на логин в данный домен!


GrayFox   (2002-07-06 21:10:00) [1]

ха-ха


Varvar   (2002-07-06 13:03:00) [2]

за такие примеры голову отрывать надо - сайт ведь делфи посвящен


asmer   (2002-07-05 21:48:00) [3]

хех, мне не надо... типа, необходимости такой не возникало... енто не я писал сё равно... тока вот хочу сказать, что пример рабочий, он из реальной проги выдернут :)


ZZ   (2002-07-04 16:08:00) [4]

А назвать тебе пару причин, по которым NetUserChangePassword не будет работать?


asmer   (2002-07-03 15:51:00) [5]

я не фак, я асмер... :)


faq   (2002-07-03 14:45:00) [6]

Q> Как,зная имя и пароль пользователя и не имея привилегий для LogonUser(),
программно проверить их на правильность?

A> Наиболее просто это воспользоваться NetUserChangePassword()

#include <afxwin.h>
#include <lm.h>
//#include <stdio.h>
#include <conio.h>

#pragma comment(lib,"netapi32")

//------------------------------------------------
void main(void)
{
char UserName[MAX_PATH];
char Password[MAX_PATH];
char CompName[MAX_PATH];

char tmp[MAX_PATH];
strcpy(tmp,"\\\\");
printf("Computer:");
scanf("%s",CompName);

if(CompName[0]!="\\")
{
strcat(tmp,CompName);
strcpy(CompName,tmp);
}

printf("User Name:");
scanf("%s",UserName );

printf("Password:");

char ch;
UINT u=0;

do
{

ch = _getch();
if(ch=="\b")
{
_putch("\b");
u--;
}
else
{

if(ch!="\r")_putch( "*" );
Password[u]=ch;
u++;
}
} while( ch != "\r" );
printf("\n");
Password[--u]=0;u=0;

wchar_t wcompname[MAX_PATH];
wchar_t wusername[MAX_PATH];
wchar_t wpassword[MAX_PATH];

mbstowcs( wcompname, CompName, strlen(CompName)+1 );
mbstowcs( wusername, UserName, strlen(UserName)+1 );
mbstowcs( wpassword, Password, strlen(Password)+1 );

switch(NetUserChangePassword(wcompname,wusername,wpassword,wpassword))
{
case ERROR_ACCESS_DENIED:
printf("The user does not have access to the requested information.\n");
break;
case NERR_InvalidComputer:
printf("The computer name is invalid.\n");
break;
case NERR_NotPrimary:
printf("The operation is allowed only on the primary domain controller of the domain.\n");
break;
case NERR_UserNotFound:
printf("The user name could not be found.\n");
break;
case NERR_PasswordTooShort:
printf("The password is shorter than required.\n");
break;
case 0:
printf("User Ok\n");
break;

default:printf ("Error\n");;
}

}


Наверх

Титульная страница Поиск, карта сайта Написать письмо