powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Авторизация winnt в своей программе
15 сообщений из 15, страница 1 из 1
Авторизация winnt в своей программе
    #33625739
tvm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Многоуважаемый ALL! не подскажете как раелизовать winnt авторизацию в своей программе. т.е. нужно сделать так чтобы при входе в программу осуществлялась проверка пользователя. Ну или хотя бы подскажите в какую стророну копать.
...
Рейтинг: 0 / 0
Авторизация winnt в своей программе
    #33625788
bac
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вот это возвращает имя пользователя, который вошел в систему. Авторизация уже проведена операционной системой. Работает начиная от Win95.

Declare Function GetUserName Lib "advapi32.dll" Alias "GetUserNameA" (ByVal lpBuffer As String, nSize As Long) As Long


Dim sBuffer As String
Dim lSize As Long
sBuffer = Space$(255)
lSize = Len(sBuffer)
Call GetUserName(sBuffer, lSize)
sBuffer = LTrim(RTrim(sBuffer))
lSize = Len(sBuffer)
...
Рейтинг: 0 / 0
Авторизация winnt в своей программе
    #33625932
tvm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
это я знаю. прjблема в том что пользователь может войти на рабочую станцию а не в домен а на локальной машине он может и не быть админом
...
Рейтинг: 0 / 0
Авторизация winnt в своей программе
    #33625958
bac
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну это не проблема. Под NT,2000,XP можно запретить заход не в домен!
...
Рейтинг: 0 / 0
Авторизация winnt в своей программе
    #33625960
bac
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если попользоваться программой poledit то и под 9x можно запретить заход без авторизации в домене.
Не понял зачем нужны права админа?
...
Рейтинг: 0 / 0
Авторизация winnt в своей программе
    #33626016
tvm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторНу это не проблема. Под NT,2000,XP можно запретить заход не в домен!
можно! ... но при сетке в 180-200 компов ...
авторНе понял зачем нужны права админа?
теоретически доступ к проге могут получить даже юзеры, что конечно же не желательно. вот я для подстраховки и хочу сделать проверку дополнительную
...
Рейтинг: 0 / 0
Авторизация winnt в своей программе
    #33626052
bac
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
НУ если компов немеряно, то сам бог велел контроллер домена поставить :) Э-Эх админ спит.
...
Рейтинг: 0 / 0
Авторизация winnt в своей программе
    #33626561
tvm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да не сплю я. :) Помимо админства я же и главный одинэсник. А по этой части спрос гораздо больше.
...
Рейтинг: 0 / 0
Авторизация winnt в своей программе
    #33626786
DDE
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
DDE
Гость
tvmМногоуважаемый ALL! не подскажете как раелизовать winnt авторизацию в своей программе. т.е. нужно сделать так чтобы при входе в программу осуществлялась проверка пользователя. Ну или хотя бы подскажите в какую стророну копать.
LogonUser?
...
Рейтинг: 0 / 0
Авторизация winnt в своей программе
    #33626994
tvm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DDE
LogonUser?
Не понял. можно поподробнее?
...
Рейтинг: 0 / 0
Авторизация winnt в своей программе
    #33627108
Фотография buser
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AllAPI.net
Пример от туда....
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
'This project needs a timer
Private Declare Function GetUserName Lib "advapi32.dll" Alias "GetUserNameA" (ByVal lpBuffer As String, nSize As Long) As Long
Private Declare Function GetTempPath Lib "kernel32" Alias "GetTempPathA" (ByVal nBufferLength As Long, ByVal lpBuffer As String) As Long
Private Declare Function IsIconic Lib "user32" (ByVal hwnd As Long) As Long
Private Sub Form_Load()
    'KPD-Team 1998
    'URL: http://www.allapi.net/
    'E-Mail: KPDTeam@Allapi.net
    Timer1.Interval =  100 
    Timer1.Enabled = True
    Dim strTemp As String, strUserName As String
    'Create a buffer
    strTemp = String( 100 , Chr$( 0 ))
    'Get the temporary path
    GetTempPath  100 , strTemp
    'strip the rest of the buffer
    strTemp = Left$(strTemp, InStr(strTemp, Chr$( 0 )) -  1 )

    'Create a buffer
    strUserName = String( 100 , Chr$( 0 ))
    'Get the username
    GetUserName strUserName,  100 
    'strip the rest of the buffer
    strUserName = Left$(strUserName, InStr(strUserName, Chr$( 0 )) -  1 )

    'Show the temppath and the username
    MsgBox "Hello " + strUserName + Chr$( 13 ) + "The temp. path is " + strTemp
End Sub
Private Sub Timer1_Timer()
    Dim Boo As Boolean
    'Check if this form is minimized
    Boo = IsIconic(Me.hwnd)
    'Update the form's caption
    Me.Caption = "Form minimized: " + Str$(Boo)
End Sub

...
Рейтинг: 0 / 0
Авторизация winnt в своей программе
    #33628366
tvm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Может я не много непонятно изъяснился. Программу можно запускать под любым пользователем. После запуска в ней запросить имя юзера и пароль, которые необходимо проверить в домене на принадлежность в группе скажем администраторы домена. Если проверка не проходит то пошел на фиг с новым годом :)
...
Рейтинг: 0 / 0
Авторизация winnt в своей программе
    #33628367
tvm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ну и ествественно что проверять нужно не только имя пользователя но и пароль.
...
Рейтинг: 0 / 0
Авторизация winnt в своей программе
    #33628692
Фотография buser
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Можно оттолкнуться от этого...
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
' Win32 API declarations
Declare Function LogonUser Lib "advapi32.dll" Alias "LogonUserA" (Byval lpszUsername As String, Byval lpszDomain As String, _
Byval lpszPassword As String, Byval dwLogonType As Long, Byval dwLogonProvider As Long, phToken As Long) As Long
Declare Function ImpersonateLoggedOnUser Lib "advapi32.dll" Alias "ImpersonateLoggedOnUser" (Byval hToken As Long) As Long
Declare Function RevertToSelf Lib "advapi32.dll" Alias "RevertToSelf" () As Long
Declare Function CloseHandle Lib "kernel32.dll" Alias "CloseHandle" (Byval hObject As Long) As Long
Declare Function GetLastError Lib "kernel32.dll" Alias "GetLastError" () As Long
Declare Function FormatMessage Lib "kernel32.dll" Alias "FormatMessageA" (Byval dwFlags As Long, lpSource As Any, _
Byval dwMessageId As Long, Byval dwLanguageId As Long, Byval lpBuffer As String, Byval nSize As Long, Byval Arguments As Long) As Long

Const LOGON32_PROVIDER_DEFAULT =  0 
Const LOGON32_LOGON_INTERACTIVE =  2 
Const FORMAT_MESSAGE_FROM_SYSTEM = &H1000

Sub Initialize
     Dim hToken&
     Dim username$, password$, domain$, xml$
     Dim file%

     ' --- set the values required for login
     username$ = "pmartinez "
     password$ = "redsox"
     domain$ = "BOSOX"

     ' --- login user and get handle to token for the specified user
     If LogonUser(username$, domain$, password$, LOGON32_LOGON_INTERACTIVE, LOGON32_PROVIDER_DEFAULT, hToken&) =  0  Then
          Msgbox FormatErrorMsg
          Exit Sub
     End If

     ' --- impersonate the security context of the logged-on user in the current thread
     If ImpersonateLoggedOnUser(hToken&) =  0  Then
          Msgbox FormatErrorMsg
          If hToken& <>  0  Then CloseHandle(hToken&)
          Exit Sub
     End If

     ' --- close the handle to the token
     If hToken& <>  0  Then CloseHandle(hToken&)

     ' --- open a file on another NT machine, and read it into a string variable
     file% = Freefile
     Open "\\FENWAY\C$\test.xml" For Input As file%
     xml$ = Input(Lof(file%), file%)
     Close file%

     ' --- revert back to system account
     Call RevertToSelf()

     ' --- print the contents of the file to the browser
     Print "Content-type: text/xml"
     Print xml$

End Sub

Function FormatErrorMsg() As String
     Dim msg$
     Dim er&

     ' --- get last error code from calling thread (note: will not return error code in a scheduled agent)
     er& = GetLastError()

     ' --- prepare buffer to receive error message
     msg$ = String$( 256 , Chr( 0 ))

     ' --- format the message
     FormatMessage FORMAT_MESSAGE_FROM_SYSTEM,  0 , er&,  0 , msg$, Lenb(msg$) -  1 ,  0 

     ' --- return the error message
     FormatErrorMsg = Left$(msg$, Instr( 1 , msg$, Chr( 0 )) -  1 )

End Function

...
Рейтинг: 0 / 0
Авторизация winnt в своей программе
    #33628962
tvm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ага я тож как раз нашел про LogonUser. Буду пробовать. Всем спасибо
...
Рейтинг: 0 / 0
15 сообщений из 15, страница 1 из 1
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Авторизация winnt в своей программе
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]