![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
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");;
}
}