簡體   English   中英

在Python / C中驗證Windows服務器用戶

[英]Authenticate windows server user in Python / C

我想用Python(2.6或2.7)/ C代碼驗證用戶。

我必須創建一個簡單的身份驗證模塊,它將username and password作為輸入,並將驗證用戶(如UNIX PAM模塊)。

有辦法嗎?

你在尋找像LogonUser這樣的東西嗎?來驗證本地用戶,例如:

#!python
# -*- coding: utf-8 -*-

from os import environ
from ctypes import windll, byref, POINTER, FormatError, GetLastError
from ctypes.wintypes import (
  LPCWSTR, WCHAR, DWORD, HANDLE, BOOL
)

MAX_COMPUTERNAME_LENGTH = 15
LOGON32_LOGON_NETWORK_CLEARTEXT = 8
LOGON32_PROVIDER_DEFAULT = 0

CloseHandle = windll.Kernel32.CloseHandle
CloseHandle.argtypes = [HANDLE]
CloseHandle.restype = BOOL

LogonUser = windll.Advapi32.LogonUserW
LogonUser.argtypes = [LPCWSTR, LPCWSTR, LPCWSTR, DWORD, DWORD, POINTER(HANDLE)]
LogonUser.restype = BOOL

if __name__ == '__main__':
  username = 'MyUsername'
  password = 'MyPassword'

  token = HANDLE()
  status = LogonUser(username,
                     environ['COMPUTERNAME'],
                     password,
                     LOGON32_LOGON_NETWORK_CLEARTEXT,
                     LOGON32_PROVIDER_DEFAULT,
                     byref(token))
  error = GetLastError()

  if status:
    print('OK, successes')
    CloseHandle(token)
  else:
    print(FormatError(error))

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM