In questo Forum e su altri ho trovato spesso questo problema (problema che avevo anche io da parecchio tempo) ma non ho mai trovato una risposta.
Sul Server ho una cartella condivisa in cui un solo utente preciso ha privilegi di accesso. Dal Client devo leggere il contenuto di quella cartella passando OVVIAMENTE le credenziali per poter accedere. Ho sempre risolto creando un NetDrive che si connettesse con user-id diversa da quella utilizzata dall' utente.
Ho trovato un' altra soluzione. In questo esempio visualizzo in una PictureBox un' immagine Bmp:
DICHIARAZIONE API:
codice:
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 ImpersonateLoggedOnUser Lib "advapi32.dll" (ByVal hToken As Long) As Long
Public Declare Function RevertToSelf Lib "advapi32.dll" () As Long
Public Declare Function CloseHandle Lib "kernel32" (ByVal hObject As Long) As Long
CODICE DEL PROGETTO IN CUI C'E' UNA PICTUREBOX ED UN COMMANDBUTTON:
codice:
Private Const LOGON32_LOGON_INTERACTIVE = 2
Private Const LOGON32_PROVIDER_DEFAULT = 0
Public Function Logon(ByVal strAdminUser As String, ByVal _
strAdminPassword As String, ByVal strAdminDomain As String) As Boolean
Dim lngTokenHandle, lngLogonType, lngLogonProvider As Long
Dim blnResult As Boolean
lngLogonType = LOGON32_LOGON_INTERACTIVE
lngLogonProvider = LOGON32_PROVIDER_DEFAULT
blnResult = RevertToSelf()
blnResult = LogonUser(strAdminUser, strAdminDomain, strAdminPassword, _
lngLogonType, lngLogonProvider, _
lngTokenHandle)
blnResult = ImpersonateLoggedOnUser(lngTokenHandle)
CloseHandle (lngTokenHandle)
Logon = blnResult
End Function
Public Sub Logoff()
Dim blnResult As Boolean
blnResult = RevertToSelf()
End Sub
Private Sub Command1_Click()
If Logon("Utente", "Password", "Dominio") Then
Picture1.Picture = LoadPicture("\\Server\img\xx.bmp")
Else
MsgBox "utento non corretto"
End If
Logoff '*** IL LOGOFF E' IMPORTANTE SE NO FA CASINI *****
End Sub
Se si potesse inserire tra le pillole sarebbe fantastico.