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 DEL PROGETTO IN CUI C'E' UNA PICTUREBOX ED UN COMMANDBUTTON: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
Se si potesse inserire tra le pillole sarebbe fantastico.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

Rispondi quotando