- PR -

ログイン認証について

1
投稿者投稿内容
復活したスライム
常連さん
会議室デビュー日: 2006/06/26
投稿数: 28
投稿日時: 2006-06-30 16:47
vb.netの下記ソースで、ログイン認証したいのですが上手くいきません。

'--------ここから、ソース--------------------------------------
Imports System.Security.Principal
Imports System.Runtime.InteropServices


Public Class clsTstForm

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

Dim token As IntPtr


If Not AdvApi32.LogonUser("username", "domain", "password", AdvApi32.LogonType.LOGON32_LOGON_INTERACTIVE, AdvApi32.LogonProvider.LOGON32_PROVIDER_DEFAULT, token) Then

MessageBox.Show("Failed to login as user test")

Exit Sub

End If

WindowsIdentity.Impersonate(token)

MessageBox.Show(WindowsIdentity.GetCurrent().Name)

'your code here

End Sub

End Class

Public Class AdvApi32

Public Enum LogonType

LOGON32_LOGON_INTERACTIVE = 2

LOGON32_LOGON_NETWORK = 3

LOGON32_LOGON_BATCH = 4

LOGON32_LOGON_SERVICE = 5

LOGON32_LOGON_UNLOCK = 7

LOGON32_LOGON_NETWORK_CLEARTEXT = 8

LOGON32_LOGON_NEW_CREDENTIALS = 9

End Enum

Public Enum LogonProvider

LOGON32_PROVIDER_DEFAULT = 0

LOGON32_PROVIDER_WINNT35 = 1

LOGON32_PROVIDER_WINNT40 = 2

LOGON32_PROVIDER_WINNT50 = 3

End Enum

Declare Ansi Function LogonUser Lib "advapi32.dll" Alias "LogonUserA" (ByVal pszUsername As String, ByVal pszDomain As String, ByVal pszPassword As String, ByVal dwLogonType As Integer, ByVal dwLogonProvider As Integer, ByRef phToken As IntPtr) As Boolean

End Class

'---ここまで----------------------------------------------------------------

"username", "domain", "password"の部分には次の値を入れています。
"administrator", "testpc", "PASSWORD"

・usernameはadministratorです。
・domainのところは使用中のPCのPC名です。
・passwordはadministratorのパスワードです。

"username", "domain", "password"には色々値を入れてテストしましたが、
全て認証されません。
何が問題なのか見当もつかないのですが、どなたかお判りになりませんか?
Windows2000、Microsoft Visual Studio 2005です。

以上、宜しくお願い致します。

ひろれい
ぬし
会議室デビュー日: 2006/03/02
投稿数: 486
お住まい・勤務地: 万博開催地
投稿日時: 2006-06-30 17:00
  ユーザーログイン状態でexeをadmin権限で実行するには?

  別アカウントでプロセスを起動する方法

1

スキルアップ/キャリアアップ(JOB@IT)