前回 "テキストのハイライト" で質問させて頂いた たじまです。 今回、NTログオン認証を行おうとおもったのですが、 うまくいきません。 どなたかご教授お願いします。 環境は NT4.0(SP5) + VB6.0(SP3) です。 以下ソースです。
' ↓ API ビューアの宣言(嘘八百) 'Public Declare Function LogonUser Lib "kernel32" 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
' ↓ 調べた宣言(これだとエラーにならない) Public 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
' オープンされているオブジェクト ハンドルをクローズする Public Declare Function CloseHandle Lib "kernel32" _ (ByVal hObject As Long) As Long
' LogonUser 関数で使用する定数 Public Const LOGON32_LOGON_INTERACTIVE = 2 Public Const LOGON32_PROVIDER_DEFAULT = 0
Private Sub Command1_Click() Dim strUser As String ' ユーザ名 Dim strPasswd As String ' パスワード Dim strDomain As String ' ドメイン名 or サーバ名 Dim hToken As Long Dim wblnRet As Boolean Dim wlngRet As Long
' 情報の設定 strUser = "ユーザー名" ' 無論こんな名前じゃない strPasswd = "パスワード" ' 無論こんな名前じゃない strDomain = "ドメイン名" ' 無論こんな名前じゃない
' ログオン wblnRet = LogonUser(strUser, strDomain, strDomain, _ LOGON32_LOGON_INTERACTIVE, LOGON32_PROVIDER_DEFAULT, hToken) ' トークンハンドルを使用してしかるべき処理を行う。 If wblnRet = True Then ' do something ' 取得したトークンハンドルをクローズする。 CloseHandle (hToken) Else MsgBox "だめー" End If
End Sub
|