Rev 2 | Blame | Compare with Previous | Last modification | View Log | RSS feed
VERSION 1.0 CLASSBEGINMultiUse = -1 'TruePersistable = 0 'NotPersistableDataBindingBehavior = 0 'vbNoneDataSourceBehavior = 0 'vbNoneMTSTransactionMode = 0 'NotAnMTSObjectENDAttribute VB_Name = "ImpersonateUser"Attribute VB_GlobalNameSpace = FalseAttribute VB_Creatable = TrueAttribute VB_PredeclaredId = FalseAttribute VB_Exposed = True'Code for Class Module:Option ExplicitConst LOGON32_LOGON_INTERACTIVE = 2Const LOGON32_LOGON_NETWORK = 3Const LOGON32_LOGON_BATCH = 4Const LOGON32_LOGON_SERVICE = 5Const LOGON32_PROVIDER_DEFAULT = 0Const LOGON32_PROVIDER_WINNT35 = 1Const LOGON32_PROVIDER_WINNT40 = 2Const LOGON32_PROVIDER_WINNT50 = 3''''''''''''''''''''''''''''''''''''''''''''Const INTERNET_OPTION_END_BROWSER_SESSION = 42Private Declare Function InternetSetOption Lib "wininet.dll" Alias "InternetSetOptionA" _(ByVal hInternet As Long, ByVal lOption As Long, ByRef sBuffer As Any, ByVal lBufferLength As Long) As IntegerPublic Function flushCredentials() As IntegerDim h As Integerh = InternetSetOption(0, INTERNET_OPTION_END_BROWSER_SESSION, 0, 0)flushCredentials = hEnd FunctionPublic Function Logon(ByVal strAdminUser As String, ByVal strAdminPassword As String, _ByVal strAdminDomain As String) As LongDim lngTokenHandle, lngLogonType, lngLogonProvider As LongDim blnResult As BooleanlngLogonType = LOGON32_LOGON_INTERACTIVElngLogonProvider = LOGON32_PROVIDER_DEFAULTblnResult = RevertToSelf()blnResult = LogonUser(strAdminUser, strAdminDomain, strAdminPassword, _lngLogonType, lngLogonProvider, _lngTokenHandle)Logon = Err.LastDllError'blnResult = ImpersonateLoggedOnUser(lngTokenHandle)'Logon = blnResultEnd FunctionPublic Sub Logoff()Dim blnResult As BooleanblnResult = RevertToSelf()End SubPublic Function AuthenticateUser(ByVal strUser As String, _ByVal strPassword As String, _ByVal strDomain As String) As LongAuthenticateUser = Logon(strUser, strPassword, strDomain)Call LogoffEnd Function