NTログオン認証(長文失礼)


[コメントツリー表示を見る] [発言時刻順表示を見る]

Posted by たじま on 2000/02/22 17:43:12

    前回 "テキストのハイライト" で質問させて頂いた
    たじまです。
    今回、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


記事スレッド一覧