Как проверить существование юзера в домене???
От: Michael Yashin Россия  
Дата: 29.10.02 12:07
Оценка:
Есть логин, пароль, имя домена. Нужно проверить существование этого юзера в домене.

Для LogonUser() не хватает привелегий. Это будет dll, посему в ручную с правами разбираться — это не есть гут. Хз, что там за окружение будет...

NetValidateName() — Вижа просто не находит функцию. По MSDN нужно подключать lm.h, но там такой функции просто нет!!!

Что делать?

MSVC 6.0, Win2000 pro
Re: Как проверить существование юзера в домене???
От: Whisperer  
Дата: 29.10.02 12:12
Оценка:
Здравствуйте Michael Yashin, Вы писали:

MY>Есть логин, пароль, имя домена. Нужно проверить существование этого юзера в домене.


MY>Для LogonUser() не хватает привелегий. Это будет dll, посему в ручную с правами разбираться — это не есть гут. Хз, что там за окружение будет...


MY>NetValidateName() — Вижа просто не находит функцию. По MSDN нужно подключать lm.h, но там такой функции просто нет!!!

Тебе поможет Platform SDK — там точно есть

И вобще не понимаю — уже столько писали — что не только SP на VC надо ставить но и последнюю SDK иметь — там всегда исправления новее.

MY>Что делать?


MY>MSVC 6.0, Win2000 pro
Re: Как проверить существование юзера в домене???
От: vasketsov Россия http://ntprog.by.ru
Дата: 29.10.02 12:14
Оценка:
Здравствуйте Michael Yashin, Вы писали:

MY>Есть логин, пароль, имя домена. Нужно проверить существование этого юзера в домене.


MY>Для LogonUser() не хватает привелегий. Это будет dll, посему в ручную с правами разбираться — это не есть гут. Хз, что там за окружение будет...


MY>NetValidateName() — Вижа просто не находит функцию. По MSDN нужно подключать lm.h, но там такой функции просто нет!!!


MY>Что делать?


MY>MSVC 6.0, Win2000 pro



Есть вопросец.
Если надо проверить существование юзера — то можно использовать LookupAccountName.
Но при чем здесь пароль? его тоже проверять надо на валидность?
Васкецов Сергей
http://registry.km.ru
Re: Как проверить существование юзера в домене???
От: Алекс Россия http://wise-orm.com
Дата: 29.10.02 12:15
Оценка:
Здравствуйте Michael Yashin, Вы писали:

хъ

MY>Что делать?


Я бы посоветовал использовать NetUserChangePassword().
Re[2]: Как проверить существование юзера в домене???
От: vasketsov Россия http://ntprog.by.ru
Дата: 29.10.02 12:17
Оценка:
Здравствуйте Алекс, Вы писали:

А>Здравствуйте Michael Yashin, Вы писали:


А>хъ


MY>>Что делать?


А>Я бы посоветовал использовать NetUserChangePassword().


Если есть право менять пароль...
Васкецов Сергей
http://registry.km.ru
Re[3]: Как проверить существование юзера в домене???
От: Алекс Россия http://wise-orm.com
Дата: 29.10.02 12:21
Оценка:
Здравствуйте vasketsov, Вы писали:

V>Здравствуйте Алекс, Вы писали:


А>>Здравствуйте Michael Yashin, Вы писали:


А>>хъ


MY>>>Что делать?


А>>Я бы посоветовал использовать NetUserChangePassword().


V>Если есть право менять пароль...


Привилегию Bypass traverse checking, по умолчанию, имеют все.
Re[4]: Как проверить существование юзера в домене???
От: vasketsov Россия http://ntprog.by.ru
Дата: 29.10.02 12:37
Оценка:
Здравствуйте Алекс, Вы писали:

А>>>Я бы посоветовал использовать NetUserChangePassword().


V>>Если есть право менять пароль...


А>Привилегию Bypass traverse checking, по умолчанию, имеют все.


1) AFAIK эта привилегия разрешает прямой доступ к вложенной папке, если по пути есть папки, в которые нет доступа, или это только частное толкование и тут она тоже рабоотает? И по дефолту — это одно, а на самом деле может быть все что угодно (как вариант, разумеется, пойдет).
2) в правах юзера или политик может быть указан запрет на изменение пароля (в том числе и по времени), это тоже надо как-то учитывать, если это учитывается разными возвращаемыми значениями (а не просто 5-й ошибкой, ибо она может быть и в том случае, если запрещено получать даже просто список юзеров) — это тогда сработает, то есть, про запрете смены пароля возвращается STATUS_ACCESS_DENIED или что-то более умное?
3) смена пароля (как удачная так и нет), AFAIK, пишет в eventlog. хотя это и мелочь.
Васкецов Сергей
http://registry.km.ru
Re[5]: Как проверить существование юзера в домене???
От: Алекс Россия http://wise-orm.com
Дата: 29.10.02 13:09
Оценка:
Здравствуйте vasketsov, Вы писали:

[]

Все это давно уже было известно. См. здесь.
Re[6]: Как проверить существование юзера в домене???
От: vasketsov Россия http://ntprog.by.ru
Дата: 29.10.02 13:16
Оценка:
Здравствуйте Алекс, Вы писали:

А>Здравствуйте vasketsov, Вы писали:


А>[]


А>Все это давно уже было известно. См. здесь.


Во-первых, я статью не читал, но прикольно было ее просмотреть.
Во-вторых, все еще не ясно, надо ли автору проверять пароль у этого юзера, или только проверить его существование.
Васкецов Сергей
http://registry.km.ru
Re[2]: Как проверить существование юзера в домене???
От: Michael Yashin Россия  
Дата: 29.10.02 13:23
Оценка:
Здравствуйте vasketsov, Вы писали:

V>Если надо проверить существование юзера — то можно использовать LookupAccountName.

V>Но при чем здесь пароль? его тоже проверять надо на валидность?

При том, что нужно проверять на валидность тройку Login, Pwd, Domain
Re[2]: Как проверить существование юзера в домене???
От: Michael Yashin Россия  
Дата: 29.10.02 13:24
Оценка:
Здравствуйте Алекс, Вы писали:


А>Я бы посоветовал использовать NetUserChangePassword().


Получается только для себя. На лучой логин нет прав
Re[7]: Как проверить существование юзера в домене???
От: Michael Yashin Россия  
Дата: 29.10.02 13:26
Оценка:
Здравствуйте vasketsov, Вы писали:

V>Во-вторых, все еще не ясно, надо ли автору проверять пароль у этого юзера, или только проверить его существование.


Пароль проверять нужно.
Re[8]: Как проверить существование юзера в домене???
От: vasketsov Россия http://ntprog.by.ru
Дата: 29.10.02 13:29
Оценка:
Здравствуйте Michael Yashin, Вы писали:

MY>Здравствуйте vasketsov, Вы писали:


V>>Во-вторых, все еще не ясно, надо ли автору проверять пароль у этого юзера, или только проверить его существование.


MY>Пароль проверять нужно.


Я бы сначала менее критично проверил как-нить, что такой юзер есть, а потом через попытку смены пароля проверил у него пароль, то есть проверку имени и пароля я бы разделил.
Васкецов Сергей
http://registry.km.ru
Re[3]: Как проверить существование юзера в домене???
От: Алекс Россия http://wise-orm.com
Дата: 29.10.02 13:30
Оценка:
Здравствуйте Michael Yashin, Вы писали:

MY>Здравствуйте Алекс, Вы писали:


MY>

А>>Я бы посоветовал использовать NetUserChangePassword().

MY>Получается только для себя. На лучой логин нет прав


Тогда только SSPI.
Re[6]: Как проверить существование юзера в домене???
От: Аноним  
Дата: 29.10.02 15:06
Оценка:
Здравствуйте Алекс, Вы писали:


А>Все это давно уже было известно. См. здесь.


Может у меня руки из Ж, или еще в чем дело, но этот пример не собирается.
Я попытался выдрать кусок с SSPI.

Файл sspiauth.cpp использует где-то CRT, который абсолюно непонятным для меня образом при линковке хочет увидеть WinMain !?! Я с CRT мало работал, посему не знаю, что это за ерунда и как ее обойти. Проект MFC. Пока ехе, потом будет dll (В ней то всяко не будет winmain! )

msvcrt.lib(crtexew.obj) : error LNK2001: unresolved external symbol _WinMain@16
Re[7]: Как проверить существование юзера в домене???
От: Alex Fedotov США  
Дата: 30.10.02 07:47
Оценка:
Здравствуйте Аноним, Вы писали:

А>Здравствуйте Алекс, Вы писали:


А>

А>>Все это давно уже было известно. См. здесь.

А>Может у меня руки из Ж, или еще в чем дело, но этот пример не собирается.

А>Я попытался выдрать кусок с SSPI.

Там есть собранный файл winauth.exe, который CRT в никаком виде не использует.

Вообще, в sspiauth.cpp CRT используется в двух местах:
* макросы _RPTx (которые убираются препроцессором в Release-конфигурации);
* функция _tcschr, которая за собой ничего не тянет.

А>Файл sspiauth.cpp использует где-то CRT, который абсолюно непонятным для меня образом при линковке хочет увидеть WinMain !?! Я с CRT мало работал, посему не знаю, что это за ерунда и как ее обойти. Проект MFC. Пока ехе, потом будет dll (В ней то всяко не будет winmain! )


А>
А>msvcrt.lib(crtexew.obj) : error LNK2001: unresolved external symbol _WinMain@16
А>
-- Alex Fedotov
Re: Как проверить существование юзера в домене???
От: siberia Россия http://siberiaway.com
Дата: 27.01.05 07:44
Оценка:
Здравствуйте, Michael Yashin, Вы писали:

MY>Есть логин, пароль, имя домена. Нужно проверить существование этого юзера в домене.


MY>Для LogonUser() не хватает привелегий.



возможно, юзер есть, но ему запрещен как локальный, так и сетевой вход на машину.
CreateProcessWithLogonW вроде бы обходит это граничение, но , как показала практика, если юзер и пароль корректны, но для другого домена (или локальной машины), то новый процесс всё равно запускается ,но грохается. При этом CreateProcessWithLogonW считает, что запуск прошел нормально.


MY>NetValidateName() —


NetValidateName я так и не смог заставить работать как тебе хочется.
Григорий Цуканов
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.